我正在开发一个无障碍应用程序,并希望在AlertDialog上自动点击一个按钮。这是通过权限“允许”按钮完成的,但当我遍历系统AlertDialog上的子节点时(例如,当你尝试发送短信时,它会要求确认,我想自动执行此操作)。
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上,我可以看到按钮和它的文本“发送”,但辅助功能看不到这一点,尽管它拥有所有需要的权限。
发布于 2020-06-16 02:56:17
尝试以下代码:
int count = -1;
for (AccessibilityNodeInfo leaf : getLeaves(event)) {
if (leaf.getClassName().toString().toLowerCase().contains("button")) {
count++;
if (count == index) {
leaf.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
}https://stackoverflow.com/questions/56749142
复制相似问题