我正在开发一个辅助功能应用程序,并希望自动单击AlertDialog上的一个按钮。使用权限“ Allow”按钮可以完成操作,但是当我遍历系统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.");
}
}
我尝试使用列表列表= nodeInfo.findAccessibilityNodeInfosByText(“ Send”); -它没有显示出来。在event.toString上,我可以看到按钮及其文本“发送”,但可访问性虽然具有所有必需的权限,却看不到它。
答案 0 :(得分:0)
尝试以下代码:
int count = -1;
for (AccessibilityNodeInfo leaf : getLeaves(event)) {
if (leaf.getClassName().toString().toLowerCase().contains("button")) {
count++;
if (count == index) {
leaf.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
}