在Crome Custom Tabs中阻止URL

时间:2017-06-22 13:11:34

标签: android accessibilityservice chrome-custom-tabs android-accessibility

我可以借助辅助功能服务检测Chrome自定义标签中正在加载哪个网址,现在我想查找后退按钮的ID,以便我可以关闭标签,如果网址在阻止列表中,是点击操作的代码:

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);
        }

1 个答案:

答案 0 :(得分:0)

您的代码的所有内容都相当准确。 findAccessibilityNodeInfosByViewId函数的问题并非所有视图都有viewId。您将不得不在视图层次结构中进行自己的爬网以完成此操作,并查找视图ID以外的属性。

如果您想查看viewID是什么,您应该使用Android设备监视器层次结构转储来访问它,还有助于了解您可能会查看的其他属性,以查看可能更加一致的其他内容并且不依赖于身份证。

enter image description here

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