AccessibilityService уничтожается при запуске uiautomator

Я новичок в Android и пытаюсь изучить AccessibilityService. Я расширил класс AccessibilityService, который получает AccessibilityEvents, и я могу использовать события.

Я вижу проблему, когда запускаю «дамп uiautomator». Мой 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)

person Namit B    schedule 03.12.2013    source источник
comment
Вы нашли обходной путь для этого?   -  person dazza5000    schedule 10.04.2019
comment
Любое обходное решение до сих пор?   -  person Nauman Ash    schedule 18.10.2019


Ответы (3)


UiAutomator нельзя использовать вместе с AccessibilityService. Когда вы включаете службу, uiAutomator падает.

Однако, поскольку UiAutomator 2.0 основан на инструментарии, вы, вероятно, сможете получить доступ к необходимой информации без службы.

person Inês    schedule 21.05.2015
comment
Обновлен ли UIAutomatorViewer для использования UiAutomator 2.0? - person dazza5000; 10.04.2019

Я столкнулся с той же проблемой и только что нашел решение из здесь.

Ответ был написан на Kotlin, поэтому я изменил свой здесь, поскольку пишу на Java:

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

 mDevice = UiDevice.getInstance(getInstrumentation());
person programmer dreamer    schedule 07.08.2019

Пожалуйста, попробуйте с uiautomator2, имеющим версию выше 18, и установите флаг отключения службы специальных возможностей как true, который будет запускать службу специальных возможностей, а также драйвер без прерывания работы.

person Shailaja Parida    schedule 13.07.2021
comment
Предоставление образца кода настоятельно рекомендуется - person Marcel Hofgesang; 14.07.2021