Почему accessibilityService возвращает ложное представление с getRootInActiveWindow? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть приложение, которое использует AccessibilityService.Когда приложение запускается, оно запускает Намерение для установки разрешения «Появиться сверху».Затем я нажму мое приложение на этом экране.Прокрутка работает и сам клик тоже.На Android 9 все работает хорошо.Но на Android 7, а также на Android 8 accessibiltyService возвращает полный рандомизированный список записей.

Я пытаюсь получить ActiveWindow с помощью getRootInActiveWindow, а затем пройти через nodeInfos и найти имя моего приложения.

TextView: res=android:id/title, text=Dictionary, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1381;807,1449], isVisibleToUser=true
TextView: res=android:id/title, text=Facebook, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1586;807,1654], isVisibleToUser=true
TextView: res=android:id/title, text=Galaxy Apps, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1791;807,1859], isVisibleToUser=true
TextView: res=android:id/title, text=S Health, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1133;807,1201], isVisibleToUser=true
TextView: res=android:id/title, text=Google, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1267;807,1335], isVisibleToUser=true
TextView: res=android:id/title, text=Google Play Music, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,465;807,533], isVisibleToUser=true
TextView: res=android:id/title, text=Voice Recorder, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,1551;807,1619], isVisibleToUser=true
TextView: res=android:id/title, text=Calendar, desc=null, actions=SELECT|CLEAR_SELECTION|ACCESSIBILITY_FOCUS|NEXT_AT_MOVEMENT_GRANULARITY|PREVIOUS_AT_MOVEMENT_GRANULARITY|SET_SELECTION|SHOW_ON_SCREEN, boundsInParent=[0,0;543,68], boundsInScreen=[264,766;807,834], isVisibleToUser=true

Я сократил файл отверстия, содержащий информацию об узлах.

Как видно, списки перемешаны.Обычно список сортируется от А до Я.

Есть ли способ получить правильные результаты?Также не имеет значения, буду ли я использовать события из AccessibiltyService или получу экран напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...