Android 2.3(GB)中的辅助功能服务无法识别辅助功能事件

时间:2012-12-13 05:04:48

标签: android android-service accessibility android-a11y

我的代码适用于4以上的Android版本但在Android 2.2或2.3中我无法检测到任何事件。 Android日志显示服务正在运行,但每当我触发事件时,Accessibility服务都无法识别它。 在以下代码中:

public void onAccessibilityEvent(AccessibilityEvent event)
{       
    Log.i("abc","------service running---------");

    final int eventType = event.getEventType();

    switch(eventType)
    {
        case AccessibilityEvent.TYPE_VIEW_CLICKED :
                //do something
                break;
        }
}

我也无法获得Log "------service running---------"。 我错过了什么是否需要进行任何更改才能在不同版本的android上运行相同的代码。

1 个答案:

答案 0 :(得分:0)

您需要通过在onServiceConnected()中设置服务的AccessibilityServiceInfo来手动指定服务的事件和反馈类型。

以下是TalkBack的一个例子:

@Override
public void onServiceConnected() {
    AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.notificationTimeout = 0;
    info.flags = AccessibilityServiceInfo.DEFAULT;
    setServiceInfo(info);
}