遇到一个 Tasker 的问题,今天在同事的 Moto X 上尝试也遇到了同样的问题,如果有安装 Tasker 的手机的话帮我测试下,谢谢 ;-)
手机:小米 2
OS:MIUI 8.1 stable global
Android 版本:5.0.2
Tasker 版本:4.9u4 Google Play 版
权限:已授予 Tasker 所有权限
在 Tasker 里面设置了一个任务:当手机有未接来电时把未接来电的号码写入到一个文件中,手动执行写入文件的 task 可以正常写入,但是当电话打过来时写入文件的操作却不能被执行,开启 log 后显示有未接电话时根本没有执行任何操作。
Profile:
Task:
Tasker Profile 和 Task,导入前在 SD 卡上新建一个叫 MissedCallsLog
的目录。
<TaskerData sr="" dvi="1" tv="4.9u4m">
<Profile sr="prof22" ve="2">
<cdate>1499963747890</cdate>
<edate>1500077287871</edate>
<id>22</id>
<mid0>4</mid0>
<pri>50</pri>
<Event sr="con0" ve="2">
<code>2003</code>
<Str sr="arg0" ve="3">C:ANY</Str>
</Event>
</Profile>
<Project sr="proj0" ve="2">
<cdate>1480560162335</cdate>
<mdate>1500077301528</mdate>
<name>Base</name>
<pids>22</pids>
<tids>4</tids>
<Img sr="icon" ve="2">
<nme>hl_aaa_ext_home</nme>
</Img>
</Project>
<Task sr="task4">
<cdate>1500005533281</cdate>
<edate>1500077287871</edate>
<id>4</id>
<nme>WriteFile</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>410</code>
<Str sr="arg0" ve="3">MissedCallsLog/mc.txt</Str>
<Str sr="arg1" ve="3">haha</Str>
<Int sr="arg2" val="1"/>
<Int sr="arg3" val="1"/>
</Action>
</Task>
</TaskerData>
使用事件监听依然不可以捕捉到未接电话:
<TaskerData sr="" dvi="1" tv="4.9u4m">
<Profile sr="prof2" ve="2">
<cdate>1500129018625</cdate>
<edate>1500129018625</edate>
<id>2</id>
<mid0>4</mid0>
<Event sr="con0" ve="2">
<code>2003</code>
<pri>0</pri>
<Str sr="arg0" ve="3">C:ANY</Str>
</Event>
</Profile>
<Project sr="proj0" ve="2">
<cdate>1480560162335</cdate>
<mdate>1500129018625</mdate>
<name>Base</name>
<pids>2</pids>
<tids>4</tids>
<Img sr="icon" ve="2">
<nme>hl_aaa_ext_home</nme>
</Img>
</Project>
<Task sr="task4">
<cdate>1500005533281</cdate>
<edate>1500129028716</edate>
<id>4</id>
<nme>WriteFile</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>410</code>
<Str sr="arg0" ve="3">MissedCallsLog/mc.txt</Str>
<Str sr="arg1" ve="3">haha</Str>
<Int sr="arg2" val="1"/>
<Int sr="arg3" val="1"/>
</Action>
</Task>
</TaskerData>
1
hzcxdgioa 2017-07-14 22:31:24 +08:00 1
miui 就不要折腾了,他是深度定制系统,一些东西已经改变了,或者删掉了,tasker 是按照原生设计的,不遵照原生的系统,系统改得差不多,根本不可能完全相互兼容,劝你找个原生试试,如果原生没问题,还是放弃吧。
|
2
abmin521 2017-07-15 00:08:29 +08:00 via Android 1
楼上加一 另外建议把 profile 导出发上来
|
3
loveyu 2017-07-15 06:18:57 +08:00 via Android 1
我改用 automate 了
|
4
greenskinmonster 2017-07-15 08:43:24 +08:00 1
|
5
woyaojizhu8 2017-07-15 14:15:10 +08:00
automate, 比 tasker 易用很多
|
6
haozi1986 2017-07-15 22:00:35 +08:00 via Android 1
楼主这个为何不工作,我的理解是这样的
因为你的配置文件里,未接来电用的是一个状态,不是一个事件,所以当用它来触发一个任务的时候,有可能会因为 tasker 监控的原因漏掉,造成无法触发 楼主可以试试事件 Events 里面的那个漏接来电 这只是一个建议,因为我现在没有未接来电,不能帮你测试,很有可能我说的不准确 |
7
haozi1986 2017-07-15 22:14:17 +08:00 1
顺便补一句,据我的使用经验,即便在系统中给予了 takser 全部权限,包括一些特殊的比如在设备管理器中开启 tasker,也不能保证 tasker 能够随时响应,因为在现在的 android 系统中,即便是原生系统,互相制约的因素还是有点多,若要随时响应,唯一的方式大概是在 tasker 的系统设置中调整各种监控时长,但是这无疑会造成不必要的耗电,得不偿失。
回到楼主的这个配置上面来,楼主的配置使用的是以未接来电的状态来触发事件,由于未接来电在没有取消的时候,它是一个持续性的状态,如果 tasker 在监控的过程中错过了某一个时间节点,那么这一状态就不会得到响应,甚至于 tasker 会误认为这个已经得到了响应所以选择了忽略,继而无法触发后续任务 但是在 tasker 的事件 Events 中也有一个未接来电的触发选项,按照我的理解,这个的响应应该会更为及时,因为是即时触发的,不存在因为系统原因造成延时而错过。 楼主可以试试我说的这个,用 Events 中的未接来电来触发 我感觉这是可行的 当然,如果有误导,也望理解 |
8
Tonni OP @haozi1986 非常感谢你的回复,我之前已经尝试使用 Event 的 Missed Call 来进行监听了,但是依然没有效果,我把我的 Event 配置 Appended 到帖子的下面了。实在不行借一台 Google Nexus 来在原生 Android 上试试。
|
9
haozi1986 2017-07-16 10:27:40 +08:00 1
@Tonni
我刚刚测试了一下, 用 event 可以正常工作 这样说来应该是你的手机系统与 tasker 之间不兼容造成的了 手机:Nexus 6 Android 版本:7.1.2 (六月安全补丁) Tasker 版本:5.0b5 |
10
haozi1986 2017-07-16 10:33:21 +08:00 1
<TaskerData sr="" dvi="1" tv="5.0b5m">
<Profile sr="prof21" ve="2"> <cdate>1500171617609</cdate> <edate>1500172132127</edate> <id>21</id> <limit>true</limit> <mid0>9</mid0> <nme>Test</nme> <Event sr="con0" ve="2"> <code>2003</code> <pri>0</pri> <Str sr="arg0" ve="3">C:ANY</Str> </Event> </Profile> <Task sr="task9"> <cdate>1500005533281</cdate> <edate>1500171725922</edate> <id>9</id> <nme>WriteFile</nme> <pri>100</pri> <Action sr="act0" ve="7"> <code>410</code> <Str sr="arg0" ve="3">temp/mc.txt</Str> <Str sr="arg1" ve="3">%CDATE - %CNUM</Str> <Int sr="arg2" val="1"/> <Int sr="arg3" val="1"/> </Action> </Task> </TaskerData> |
11
flynaj 2017-07-16 15:03:02 +08:00 via Android 1
|
12
Tonni OP |
13
Tonni OP |
14
haozi1986 2017-07-19 07:12:25 +08:00 1
除了应用权限全给以外,你再确认一下这些设置:
无障碍 设备管理器 可出现在其他应用上的应用 通知使用权 电源优化模式 可修改系统设置 看看这些设置是否全部为 Tasker 开启(你的这个需求不一定需要开启全部,但是为以防万一,建议全部开启) 如果有些设置找不到在哪里,你可以试试 5.0beta 版,里面有这些设置选项的跳转菜单,在 more > android setting 里面 另外,看看你的 takser 设置的 Monitor 里面,Run In Foreground 是否开启,同页面下面的各个选项你也可以多看看 如果全部都正常,那没道理不工作的 |
15
Tonni OP @haozi1986 已确认,这些权限/设置都一一开启了,我也按照官方的说明: http://tasker.dinglisch.net/userguide/en/androidpowermanagement.html 设置了。
但是还是不行,捕捉不到任何通话相关的事件/状态,这... |
16
Tonni OP @haozi1986
@flynaj @greenskinmonster @abmin521 @hzcxdgioa 感谢之前的关注,Google Group 里面有人指出了问题的原因: https://groups.google.com/d/msg/tasker/2iWrLEFhl_o/XmtvYF7IAwAJ |