5

我是 android 新手,我正在尝试探索 AccessibilityService。我扩展了 AccessibilityService 类,它获取 AccessibilityEvents 并且我能够使用这些事件。

我在运行“uiautomator dump”时发现了一个问题。我的 AccessibilityService 被破坏,我没有收到任何辅助功能事件。有没有办法解决这个问题?

任何帮助或建议表示赞赏。非常感谢您提前。

堆栈跟踪附在下面:

W/System.err( 3832):    at com.example.myservice.MyAccessibilityService.onUnbind(MyAccessibilityService.java:185)
W/System.err( 3832):    at android.app.ActivityThread.handleUnbindService(ActivityThread.java:2629)
W/System.err( 3832):    at android.app.ActivityThread.access$1800(ActivityThread.java:141)
W/System.err( 3832):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348)
W/System.err( 3832):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 3832):    at android.os.Looper.loop(Looper.java:137)
W/System.err( 3832):    at android.app.ActivityThread.main(ActivityThread.java:5103)
W/System.err( 3832):    at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 3832):    at java.lang.reflect.Method.invoke(Method.java:525)
W/System.err( 3832):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
W/System.err( 3832):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err( 3832):    at dalvik.system.NativeStart.main(Native Method)
4

3 回答 3

0

UiAutomator 不能与 AccessibilityService 一起使用。当您打开该服务时,uiAutomator 将崩溃。

但是,由于 UiAutomator 2.0 是基于检测的,因此您可能无需该服务即可访问所需的信息。

于 2015-05-21T11:50:25.217 回答
0

请尝试使用版本高于 18 的 uiautomator2 并将禁用 supress 辅助服务标志设置为 true,这将无缝运行辅助服务和驱动程序而不会终止。

于 2021-07-13T18:11:51.333 回答
0

我遇到了同样的问题,刚刚从这里找到了解决方案。

答案是用 Kotlin 写的,所以我在这里修改了我用 Java 写的:

 int flags = UiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES;
 Configurator.getInstance().setUiAutomationFlags(flags);

 mDevice = UiDevice.getInstance(getInstrumentation());
于 2019-08-07T04:01:25.757 回答