2

私は独自のアクセシビリティ サービスを作成しました。4.1.1 以下では問題なく動作します。しかし、Settings>Accessibility で 4.2.2 のサービスが見つからないことがわかりました。4.2.2 のアクセシビリティについて知っておくべきことはありますか?

これは私がAndroidマニフェストで宣言しています

<service android:name="my_service_name"
                    android:label="@string/accessibility_service_lable">
                        <meta-data 
                            android:name="android.accessibilityservice"
                            android:resource="@xml/accessibility_service_config"/>
                    <intent-filter >
                        <action android:name="android.accessibilityservice.AccessibilityService"/>
                    </intent-filter>
                </service>
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

以下は構成ファイルです。非常に単純です。

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/accessibility_service_description"
    />
4

1 に答える 1

1

マニフェストでは、uses-permission 要素としてではなく、サービスのバインド アクセス許可を宣言する必要があります。

このアクセス許可は、システム以外のアプリケーションがサービスにバインドされないようにするために使用されます。これは、セキュリティ上の問題になる可能性があります。サービスがバインドにこのアクセス許可を必要としない場合、システムはユーザーを保護するためにそれを無視します。

したがって、マニフェストは次のようになります。

<service android:name="my_service_name"
    android:label="@string/accessibility_service_lable"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
    <meta-data 
        android:name="android.accessibilityservice"
        android:resource="@xml/accessibility_service_config"/>
    <intent-filter >
        <action android:name="android.accessibilityservice.AccessibilityService"/>
    </intent-filter>
</service>
于 2013-10-01T01:37:17.523 に答える