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
- ¿Cómo compartir la copia de seguridad de google android entre aplicaciones?
- Restaurar los datos de la aplicación mediante programación
- ¿Cómo puedo copiar un archivo de base de datos a la tarjeta SD en Android?
- BackUpAgentHelperClass no se recibe
- Es posible copia de seguridad y restaurar un archivo de base de datos en android? Dispositivos no root
Recomienda probar la copia de seguridad / restauración de su aplicación mediante:
- Instalar su aplicación
- Asegúrese de que la copia de seguridad / restauración está activada
- Cambiando algunos datos y llamando a dataChanged ()
- Forzar a bmgr a ejecutar un pase de respaldo
- Desinstala la aplicación
- 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!
- Android: copia de seguridad de mensajes y archivos mediante programación
- Copias de seguridad de bases de datos de Android
- ¿Cómo hacer copia de seguridad del archivo .apk de la aplicación instalada?
- Android 1.5: Lectura de mensajes SMS
- Android BackupAgent no copia de seguridad / restauración de preferencias compartidas
- Copia de seguridad de dispositivo Android con adb
- Cómo hacer una copia de seguridad / restaurar la base de datos SQLite en Android a Dropbox
- La copia de seguridad de anuncios de Android no pudo conectar el problema
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:
- Habilitar copia de seguridad por adb:
bmgr enable true
- Establecer el transporte local:
bmgr transports android/com.android.internal.backup.LocalTransport
- Ejecuta tu aplicación y prepara la copia de seguridad.
- Ejecutar copia de seguridad:
bmgr backup <package> & bmgr run
- Desinstalar la aplicación del emulador
- Instalar la aplicación de nuevo – la restauración debe suceder automáticamente
Sugerencia: buscar logcat para actividades de "copia de seguridad"
- Cómo alojar un servicio web java RESTful para la aplicación android
- HTML / CSS: Cómo evitar que los navegadores de Android y iPhone escalen imágenes de fondo