0

我能够在辅助功能服务的帮助下检测 Chrome 自定义选项卡中正在加载哪个 URL,现在我想找到后退按钮的 id,以便如果 url 在阻止列表中,我可以关闭选项卡,以下是代码点击操作:

List<AccessibilityNodeInfo> list = nodeInfo.
findAccessibilityNodeInfosByViewId("com.android.chrome:"id for back button"");
        for (AccessibilityNodeInfo node : list) {
            Log.i(TAG, "ACC::onAccessibilityEvent: back_button " + node);
            node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
        }
4

1 回答 1

0

关于你的代码的一切都是相当准确的。该findAccessibilityNodeInfosByViewId函数的问题在于并非所有视图都有 viewId。您将不得不自己爬取视图层次结构以完成此操作,并查找视图 ID 以外的属性。

如果您想查看 viewID 是什么,您应该使用 Android Device Monitor Hierarchy Dump 来访问它,并帮助了解您可能会查看的其他属性,看看您还能找到哪些更一致且不依赖的属性在身份证上。

在此处输入图像描述

在这里,我们看到了来自 Android 设备监视器的典型屏幕转储。如您所见,突出显示的视图的视图 ID 显示在下面的信息中,如果它有一个。另请注意,多个视图可以共享此 ID!它是 ViewIdResourceName,而不是唯一 ID。

于 2017-06-23T16:37:48.000 回答