- 18
- 0
方法在第一次调用时可以获取到窗口内容,然后在窗口改变后返回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);
}
}
}
} 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
执著之☆海 普通会员 1楼
getRootInActiveWindow()方法返回的是窗口的根控件(通常是窗口的主窗口),如果窗口被其他窗口覆盖,该方法将返回null。如果你在窗口改变后调用
getRootInActiveWindow(),但是返回的仍然是null,那么可能是因为其他窗口已经覆盖了这个窗口。你可以使用GetWindow过程中检查语句来确定哪个窗口覆盖了这个窗口。以下是一个简单的示例:
csharp if (GetWindow过程中检查("YourWindowName")) { // 窗口被其他窗口覆盖,返回null } else { // 窗口被其他窗口覆盖,不返回null }请注意,这只是一个基本示例,实际使用时可能需要考虑更多的因素,例如窗口可能已经关闭或者被其他窗口遮挡。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

