2

我已经编写了自己的无障碍服务。它在 4.1.1 及更低版本上运行良好。但是,我发现在设置>辅助功能中找不到 4.2.2 上的服务。关于 4.2.2 上的可访问性,我应该知道些什么吗?

这是我在 Android Manifest 中声明的

<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

您的清单应声明您的服务的绑定权限,而不是作为使用权限元素。

此权限用于防止非系统应用程序绑定到您的服务,这可能是一个安全问题。如果您的服务不需要此权限进行绑定,则系统将忽略它以保护用户。

因此,您的清单应如下所示:

<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 回答