Ответ 1
Поскольку службы доступности могут исследовать и взаимодействовать с экранным контентом, пользователь должен явно включить службы в настройках > Доступность. После того, как служба включена, система запустит ее автоматически и привяжет к API-интерфейсам доступности.
Убедитесь, что вы объявили свою службу в манифесте вашего приложения:
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
. . .
</service>
Вам также потребуется указать конфигурацию для своей службы, переопределив setServiceInfo (AccessibilityServiceInfo) или добавив атрибут метаданных и файл конфигурации XML.
Атрибут метаданных находится в вашем <service> после фильтра < намерения-фильтра > и выглядит следующим образом:
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
Конфигурация XML, на которую вы ссылаетесь (в данном случае, accessibilityservice.xml) выглядит следующим образом:
<accessibility-service
android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
android:packageNames="foo.bar, foo.baz"
android:accessibilityFeedbackType="feedbackSpoken"
android:notificationTimeout="100"
android:accessibilityFlags="flagDefault"
android:settingsActivity="foo.bar.TestBackActivity"
android:canRetrieveWindowContent="true"
. . .
/>
Там больше информации о том, какие теги вы можете использовать в http://developer.android.com/reference/android/R.styleable.html#AccessibilityService