Android辅助功能服务事件处理

时间:2015-10-04 16:08:14

标签: android accessibilityservice

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

最佳

亚历

2 个答案:

答案 0 :(得分:1)

在onServiceConnected函数中,试试这个:

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

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

答案 1 :(得分:0)

我认为一种方法是将位置词转换为其他语言并创建一个字符串列表,并匹配所选节点的文本并执行所需的操作:)
因为我认为每个辅助功能节点都没有唯一的ID。