首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >accessibilityNodeInfo AlertDialog的子节点始终为空。如何获取按钮?

accessibilityNodeInfo AlertDialog的子节点始终为空。如何获取按钮?
EN

Stack Overflow用户
提问于 2019-06-25 15:43:08
回答 1查看 181关注 0票数 0

我正在开发一个无障碍应用程序,并希望在AlertDialog上自动点击一个按钮。这是通过权限“允许”按钮完成的,但当我遍历系统AlertDialog上的子节点时(例如,当你尝试发送短信时,它会要求确认,我想自动执行此操作)。

代码语言:javascript
复制
    public void autoAllowSend(AccessibilityEvent event){
    AccessibilityNodeInfo accessibilityNodeInfo = event.getSource();
    if (accessibilityNodeInfo != null) {
        for (int i = 0; i < accessibilityNodeInfo.getChildCount(); i++) {
            AccessibilityNodeInfo child = accessibilityNodeInfo.getChild(i);
            if (child != null) {
                CharSequence text = child.getText();
                Logg("B", child.getClassName().toString());
            }else{
                Logg("A","Child is Null");
            }
        }
    }else{
        Logg("A","accessibilityNodeInfo is null.");
    }
}

我尝试使用List list = nodeInfo.findAccessibilityNodeInfosByText("Send");-它没有显示它。在event.toString上,我可以看到按钮和它的文本“发送”,但辅助功能看不到这一点,尽管它拥有所有需要的权限。

EN

回答 1

Stack Overflow用户

发布于 2020-06-16 02:56:17

尝试以下代码:

代码语言:javascript
复制
int count = -1;
for (AccessibilityNodeInfo leaf : getLeaves(event)) {
    if (leaf.getClassName().toString().toLowerCase().contains("button")) {
        count++;
        if (count == index) {
            leaf.performAction(AccessibilityNodeInfo.ACTION_CLICK);
        }
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56749142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档