AutoJs6
AutoJs6 copied to clipboard
v6.4.2无故障服务还是不太稳定,try-catch捕获到错误如下:
报错信息: java.lang.RuntimeException: 无障碍服务已启用但未运行 (尝试重新启用或重启设备) 注:出现上述报错信息时,脚本会停止运行,无法继续执行下面的功能了。
一、说明: 1、设置里已开启自动启用无障碍服务(默认的) 2、在查看手机的无障碍设置时,状态正常,显示autojs6是已启用状态 3、在点击菜单上的服务组中的无障碍服务开关时,开关会开一下立即又关掉,经多次重启autojs6后,又恢复正常了 4、我发现在无障碍服务出现故障(非手动关闭无障碍)时,使用auto.serivce仍然会返回服务,但这时无障碍服务虽然是开启的,但已经不能正常工作了,这就需要先关闭无障碍服务,再开启,之后无障碍服务的故障就解除了 5、可以通过Shizuku模块运行命令的方式来手动关闭和开启无障碍服务(模似重开/重启无障碍的功能,如下面的命令),但Shizuku受开发者模式及无线调试开关的影响,运行也不太稳定,因为无线调试的开关,时间长了会自已关闭,所以使用Shizuku来关闭和开启无障碍功能并不好用。
shizuku('settings put secure enabled_accessibility_services null'); // 关闭无障碍服务,null会关闭所有,如有多个应用开启无障碍,要仅关闭autojs6的无障碍,需要先let res = shizuku('settings get secure enabled_accessibility_services');得到已开启无障碍服务的列表,从中筛出autojs6的,从而关闭
shizuku('settings put secure enabled_accessibility_services org.autojs.autojs6/org.autojs.autojs.core.accessibility.AccessibilityService'); // 开启无障碍服务
二、问题: 1、autojs6的无障碍服务会在什么情况下自启,如果是通过类似auto.service来检查是否需要启动无障碍的话,如上述,对于发生故障而非关闭的情况就不好使了。 2、能不能在脚本每次运行前都重启(先关闭再开启)无障碍服务,以防止无障碍服务故障情况的发生,可能在多脚本同时运行的情况下不好处理。
三、期望: 1、当然是提升应用的稳定性,不出故障是最好的。 2、把关闭和开启无障碍服务的功能接口开放给用户,让用户在脚本里可以操作,从而增加脚本的灵活性以及处理问题的能力。