Почему getRootInActiveWindow () возвращает ноль при попытке получить окно SMS - PullRequest
0 голосов
/ 12 июня 2019

Я разрабатываю приложение, которое читает текст на экране пользователю.Когда пользователь входит в сеанс SMS, я хочу последовательно читать сообщения сверху вниз.

Чтобы запросить окно, в котором содержатся все элементы пользовательского интерфейса (т. Е. TextViews, EditTexts и т. Д.) Сеанса SMS.Я использую getRootInActiveWindow() в методе onAccessibilityEvent(AccessibilityEvent event) моей службы доступности.Однако каждый раз, когда AccessibilityEvent из окна SMS (имя пакета: com.google.android.apps.messaging) запускается, getRootInActiveWindow() возвращает null .

Почему это происходит и как я могу получитьнад этой проблемой?

Спасибо за потраченное время!

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Если вы получаете getRootInActiveWindow() как ноль, попробуйте получить узел внутри этого конкретного узла, а затем после этого вы можете запросить getRootInActiveWindow() на этом конкретном узле.

Пример:

node.getRootInActiveWindow() = null;

затем попробуйте, node.get(0).getRootInActiveWindow() или node.get(1).getRootInActiveWindow()

Надеюсь, это решит вашу проблему.

0 голосов
/ 19 июня 2019

Возможно, вам лучше получить окно от источника вашего события. getRootInActiveWindow () является чем-то вроде удержания с более раннего времени, и бывают моменты, когда нет активного окна и / или это окно не зарегистрировано или не отвечает должным образом.

...