Специальные события, не распознаваемые сервисом специальных возможностей в Android 2.3(ГБ)

Мой код прекрасно работает с версиями Android выше 4, но в Android 2.2 или 2.3 я не могу обнаружить событие. Журналы Android показывают, что служба работает, но всякий раз, когда я запускаю событие, оно не распознается службой специальных возможностей. В следующем коде:

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 ответ

Вам нужно будет вручную указать типы событий и отзывов вашей службы, установив AccessibilityServiceInfo вашей службы в onServiceConnected().

Вот пример из 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);
}
Другие вопросы по тегам