为什么event.getSource()为具有相关源视图的辅助功能事件返回null?

时间:2016-10-03 14:11:35

标签: android events service accessibility

对于android.widget.Button上的事件TYPE_VIEW_CLICKED,event.getSource()方法返回null。理想情况下,此事件应附加源。

此外,从Android API 18开始,不会发送通过sendAccessibilityEvent而没有来源传播的辅助功能事件。缺少哪些事件源的文档丢失了!

还有其他可靠的方式来获取活动的AccessibilityNodeInfo吗?即有相关观点的事件。对于例如TYPE_WINDOW_CONTENT_CHANGED事件,没有视图作为源

试用API 22和21

1 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题,可以通过将notifyTimeout设置为100来解决。示例代码如下:

protected void onServiceConnected() {
    super.onServiceConnected();
    AccessibilityServiceInfo info   = new AccessibilityServiceInfo();
    info.packageNames               = new String[]{getApplicationContext().getPackageName()};
    info.eventTypes                 = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType               = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.notificationTimeout        = 100;
    info.flags                      = AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
    setServiceInfo(info);
}