2015-10-04 64 views
0

我在坚持以下问题: 我想对Android设置中的AccessibilityEvents做出反应。 例如,我想在用户点击位置时执行特定操作。 当我切换设备的语言时会发生此问题。然后它说event.getText()一个不同的文本,所以我无法对“位置”做出反应。有没有办法为Subsettings Location等获得唯一的ID?Android辅助功能服务事件处理

最佳 亚历

回答

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就是另一种方法。

0

我想一个办法就是定位词翻译成其他语言,并创建字符串的一个列表,只是匹配所选节点的文本,并执行所需的操作:)
因为我觉得有没有独特的ID为每个可访问节点。