getRootInActiveWindow()在窗口改变后后返回null

新手上路,请多包涵

方法在第一次调用时可以获取到窗口内容,然后在窗口改变后返回null
这个log在第一次进入的时候打印的nodeInfo正常,在窗口改变后打印就是null了

public void onAccessibilityEvent(AccessibilityEvent event) {
 int eventType = event.getEventType();
        switch (eventType) {
            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
             test();
        }
}
private void test() {
 AccessibilityNodeInfo nodeInfo = getRootInActiveWindow();
        Log.d(TAG, "getRootInActiveWindow: "+nodeInfo);
        if (nodeInfo != null) {
            List<AccessibilityNodeInfo> list = nodeInfo.
                        findAccessibilityNodeInfosByText("更多");
                for (AccessibilityNodeInfo n : list) {
                    if (n.getClassName().equals("android.widget.TextView") && n.isEnabled()) {
                        AccessibilityNodeInfo parent = n.getParent();
                        parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
                    }
                }
        }
}
阅读 8.1k
1 个回答
新手上路,请多包涵

你好 请问这个问题解决了么 我也遇到了这样的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏