Android copia de seguridad / muestra de restauración no funciona?

Estoy teniendo este mismo problema – como se encuentra en el grupo de desarrolladores de Google. Cito lo que es una explicación muy detallada por Chris Grebeldinger (autor original).

"En la documentación: http://developer.android.com/guide/topics/data/backup.html#Testing

Recomienda probar la copia de seguridad / restauración de su aplicación mediante:

  1. Instalar su aplicación
  2. Asegúrese de que la copia de seguridad / restauración está activada
  3. Cambiando algunos datos y llamando a dataChanged ()
  4. Forzar a bmgr a ejecutar un pase de respaldo
  5. Desinstala la aplicación
  6. Vuelva a instalar la aplicación y compruebe si los datos se han restaurado

Todo parece bien hasta el paso 4, cuando veo esto en el registro:

V / BackupManagerService (306): removePackageParticipantsLocked: uid = 10078 # 1 V / BackupManagerService (306): Eliminar el conocimiento de copia de seguridad de com.example.app

Y luego para el paso 5:

V / BackupManagerService (306): restoreAtInstall pkg = com.example.app token = 21 V / BackupManagerService (306)

Por lo tanto, los datos aparentemente respaldados se destruyen cuando se desinstala una aplicación, lo que significa que el flujo de trabajo de prueba oficial no puede funcionar correctamente? ¿Cuál es la mejor manera de probar esto? "

¿Alguien ha logrado ejecutar y probar esta muestra correctamente? ¡Gracias!

Gracias de nuevo a Chris Grebeldinger que amablemente respondió a mi respuesta a su puesto original en el grupo de desarrolladores de google android.

Cómo funciona:

  • Instalar la aplicación en el dispositivo A.
  • Establezca los datos o preferencias en el dispositivo A.
  • Forzar una copia de seguridad en el dispositivo A. (Utilizando la copia de seguridad bmgr de shell de adb [app_name], la ejecución de bb de shell de adb).
  • Coge un segundo dispositivo B.
  • Realice un restablecimiento de fábrica en el dispositivo B.
  • Una vez restablecido, vuelve a instalar la aplicación.
  • La operación de restauración debe tener éxito.

Lo que me molesta es que los "pasos", como se muestra en la documentación de Google Android que parecen ser muy detallada decidió omitir lo que parece ser un paso necesario y obligatorio.

Como Chris mencionó en su respuesta, espero que esto ayude a otras personas que encuentran el mismo problema.

Gracias.

EDITAR:

Después de realizar pruebas adicionales con diferentes dispositivos, parece que todo el proceso de copia de seguridad / restauración puede variar de fabricante y dispositivo. Podría probar la aplicación de ejemplo utilizando el enfoque de documento de Google, es decir, desinstalación e instalación mediante un nexo 7 – sólo por casualidad. Por lo tanto, mi consejo sería no esperar el mismo comportamiento y consistencia durante sus pruebas.

Intente usar el emulador para fines de prueba. Nexus 5 con API 22 funcionó para mí solo desinstalando e instalando la aplicación.

Proceso completo:

  1. Habilitar copia de seguridad por adb: bmgr enable true
  2. Establecer el transporte local: bmgr transports android/com.android.internal.backup.LocalTransport
  3. Ejecuta tu aplicación y prepara la copia de seguridad.
  4. Ejecutar copia de seguridad: bmgr backup <package> & bmgr run
  5. Desinstalar la aplicación del emulador
  6. Instalar la aplicación de nuevo – la restauración debe suceder automáticamente

Sugerencia: buscar logcat para actividades de "copia de seguridad"

  • Copia de seguridad y restauración de la base de datos SQLite a sdcard
  • Método del ciclo de vida del bloqueo de actividad - android
  • Cómo hacer copias de seguridad de los contactos o sms en la tarjeta SD como archivo .xml o .csv y restaurarlos más tarde
  • ¿Debería estar lleno el archivo xml del contenido de la copia de seguridad completa o no incluirlo en todos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.