0

我坚持以下问题:我想对 Android 设置中的 AccessibilityEvents 做出反应。例如,我想在用户点击位置时执行特定操作。当我切换设备的语言时会出现问题。然后它为 event.getText() 显示不同的文本,因此我无法再对“位置”做出反应。有没有办法获得子设置位置等的唯一 ID?

最好的亚历克斯

4

2 回答 2

1

在你的 onServiceConnected 函数中,试试这个:

AccessibilityServiceInfo tempInfo = getServiceInfo();
tempInfo.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
tempInfo.flags |= AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
setServiceInfo(tempInfo);

如果关键 id 位于您要查找的视图的布局上,我们会添加不包含重要视图。报告视图 ID 标志将报告具有命名资源的视图的 ID。如果视图(或其分层布局)没有命名资源,不幸的是你被卡住了。您可以尝试获取根视图,并根据整个层次结构计算视图的位置。例如,如果您知道这是第五个视图,那么在某某视图 ID 旁边是另一种方法。

于 2015-10-05T14:45:17.863 回答
0

我认为一种方法是将位置词翻译成其他语言并创建一个字符串列表并匹配所选节点的文本并执行所需的操作:)
因为我认为每个可访问性节点都没有唯一的 id。

于 2016-11-24T10:47:19.333 回答