3

私のコードは 4 以上の Android バージョンでは正常に動作しますが、Android 2.2 または 2.3 では Any イベントを検出できません。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の異なるバージョンで同じコードを実行するために必要な変更はありますか.

4

1 に答える 1

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);
}
于 2014-01-07T05:23:58.153 に答える