El servicio de accesibilidad no está vinculado después de la actualización de la aplicación

Tengo una aplicación perfectamente en ejecución con un servicio de accesibilidad. Ha estado funcionando como se esperaba hasta ahora. El problema surgió en el momento en que traté de construir una nueva versión actualizada. Nada ha cambiado en el código relacionado con el servicio de accesibilidad. Pero el servicio ya no es obligatorio para la aplicación actualizada. No hay errores o advertencias en registros. Aquí está la parte del manifiesto.xml :

... <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" /> <application android:name=".AppState" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:allowBackup="true"> // ... several activities, services and bootup receiver goes here... <service android:name=".ForegroundMonitor" android:label="@string/foreground_monitor_label" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"> <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/serviceconfig" /> </service> </application> 

Y aquí está el serviceconfig.xml :

 <?xml version="1.0" encoding="utf-8"?> <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged" android:accessibilityFeedbackType="feedbackGeneric" android:notificationTimeout="1000" android:canRetrieveWindowContent="false" android:description="@string/foreground_monitor_about" /> 

El servicio de accesibilidad se registra de acuerdo con el sistema, se puede iniciar o detener y los ajustes del servicio cambian si los cambio en la aplicación y vuelvo a instalarla.

Pero el servicio ya no es vinculante para mi aplicación. No se onServiceConnected método onServiceConnected de onServiceConnected .

He encontrado algunas preguntas similares aquí en SO:

  • El servicio de accesibilidad para mi aplicación no funciona si vuelvo a instalar mi aplicación : con una respuesta;
  • Servicio de accesibilidad de Android no conectado después de reinstalar – sin una respuesta;

He probado la única solución sugerida, pero no funciona en mi caso.

Según mis pruebas, el problema sólo se produce en Android 5.0.1. En Android 2.3.3 la aplicación funciona normalmente y el servicio está enlazado correctamente.

¿Podría alguien compartir una solución para este problema, que es presumiblemente un error de Android?

ACTUALIZAR

Acabo de encontrar una solución: basta con cambiar el nombre de la clase que extiende AccessibilityService ( ForegroundMonitor en mi caso), por ejemplo, añadiendo un sufijo de control de versiones. El inconveniente de este método es que los usuarios deben volver a habilitar el nuevo servicio de accesibilidad en el sistema, ya que es tratado como otro. Idealmente, la actualización de una aplicación no debería requerir esto si el servicio estaba habilitado una vez.

Así que todavía estoy interesado en una solución – solución más conveniente.

Gracias por adelantado.

  • Android L SoundPool.load () regresión
  • Propietario de dispositivo en un dispositivo no conectado (Android L), sin NFC, con shell de adb, dpm set-device-owner
  • Android 5 Lollipop dirección sombra o desplazamiento y
  • MediaScannerConnection # scanFile convierte directorios en archivos al acceder a ellos con USB-MTP en Android 5 Lollipop
  • DhcpInfo no responde la máscara de red en Android Lolipop
  • Android- lollipop preview Nexus 5 no está empezando en el emulador de Genymotion
  • Limpiar historial (carpeta reciente) en el selector de árbol de directorio de Android 5+ (ACTION_OPEN_DOCUMENT_TREE)
  • Android - ¿Lollipop Screen pinning funciona a través de múltiples actividades en la misma aplicación?
  • ¿Cómo comunicarse entre las aplicaciones en el propietario del perfil y el dispositivo en android lollipop?
  • ¿Qué tamaño deben tener los iconos de Barra de Acción (Barra de herramientas) en el nuevo diseño de Material Android?
  • Android Lollipop - Tire para actualizar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.