samsung puedo pantalla desactivar con como botones bloqueada activar android service accessibility

android - pantalla - no puedo desactivar talkback samsung



Cómo habilitar/deshabilitar mediante programación el servicio de accesibilidad en Android (7)

Me gustaría habilitar / deshabilitar programáticamente los Servicios de accesibilidad enumerados en Configuración-> Opción de accesibilidad.

Podría iniciar la Intención de Accesibilidad como a continuación:

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivityForResult(intent, 0);

Pero no tengo idea de cómo habilitar los servicios enumerados en la vista a través de mi código.

Por favor, dame tus puntos de vista.


AccessibilityService es especial y no puede iniciarse programáticamente.


Lo mejor que puede hacer es abrir manualmente la configuración de accesibilidad con:

Intent intennt = new Intent (Settings.ACTION_ACCESSIBILITY_SETTINGS)

y comience la intención; también puede hacerlo desde el archivo prefernece xml:

intento android: acción = "android.settings.ACCESSIBILITY_SETTINGS"


Desde Android 6.0 puedes usar:

adb shell settings put secure enabled_accessibility_services packagname/servicename

La configuración.db de versiones anteriores ya no está presente en Android 6.0.


En Android 7 (API 24), un AccessibilityService puede deshabilitarse mediante programación llamando al método disableSelf () .


Por si acaso alguien todavía intenta apagar el Talkback desde adb cuando está atrapado en su pantalla de bloqueo ingresando la contraseña o el pin. Una cosa que puedes probar es adb shell am force-stop com.google.android.marvin.talkback



Encontré una solución que funcionó para mí llamando

Settings.Secure.putString(getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "pkgname/classname"); Settings.Secure.putString(getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, "1");

Donde pkgname es su nombre de paquete y classname es el nombre de clase de su servicio de accesibilidad.

Si necesita habilitar varios servicios o no quiere borrar la configuración anterior, puede usar : para separar otros servicios.

También es posible que deba ejecutar como una aplicación de sistema y es posible que necesite los siguientes permisos

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

Sin embargo, de acuerdo con @Rupert Rawnsley esto podría no funcionar en algunas versiones de Android, estoy trabajando en Android 4.0.4 y espero que funcione para usted.

PD. Si no funciona, tal vez podría encontrar algo de suerte en /data/data/com.android.providers.settings/databases/settings.db/secure , que es donde Android almacena la configuración segura.