Dado que los servicios de accesibilidad pueden explorar e interactuar con el contenido de la pantalla, un usuario tiene que habilitar explícitamente los servicios en Configuración> Accesibilidad. Una vez que se habilita un servicio, el sistema lo iniciará automáticamente y lo vinculará a las API de accesibilidad.
Asegúrese de que usted declara su servicio en su manifiesto de aplicación:
<service android:name=".MyAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
. . .
</service>
También tendrá que proporcionar la configuración de su servicio, ya sea por razones imperiosas setServiceInfo (AccessibilityServiceInfo) o añadiendo un atributo de meta-datos y XML archivo de configuración.
El atributo de metadatos va en su declaración <servicio> > después de la etiqueta <-filtro de intención y se ve así:
<meta-data android:name="android.accessibilityservice"
android:resource="@xml/accessibilityservice" />
La configuración XML que se está haciendo referencia (en este caso, accessibilityservice .xml) se parece a esto:
<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"
. . .
/>
Hay más información sobre qué etiquetas se puede utilizar en http://developer.android.com/reference/android/R.styleable.html#AccessibilityService
realmente te mereces muchos votos favorables. Porque incluso la documentación es incorrecta en http://developer.android.com/guide/topics/ui/accessibility/services.html. Ha mostrado la forma correcta de realizar un servicio de accesibilidad – gaurav414u
@alanv "Una vez que se habilita un servicio, el sistema lo iniciará automáticamente y lo vinculará a las API de accesibilidad". Tengo una pregunta, mi servicio de accesibilidad una vez habilitado el trabajo. Bit cuando falla, los resultados se activan en la configuración de tue pero no da como resultado el servicio de ejecución. ¿Por qué System no reinicia mi servicio después de un bloqueo, pero aún así el resultado está habilitado? – Hoper
@ v1sc3rr4k Una vez que un servicio vinculado al sistema (como el Servicio de accesibilidad) falla, el sistema no lo reinicia hasta que se restablece el permiso o se reinicia el sistema operativo. Intenta revocar el permiso y habilitarlo de nuevo, el servicio comenzará de nuevo. Espero eso ayude. – abhinav