7 votos

¿Por qué mi Android no restaura los datos de la aplicación desde su copia de seguridad de Google Drive?

Estoy probando una nueva versión de nuestra aplicación que ahora es compatible con la copia de seguridad de Android Auto (apuntando a la API sobre 23).

He conseguido que el sistema haga una copia de seguridad de los datos de la aplicación dejándola toda la noche (dos noches), pero cuando he desinstalado la aplicación y la he vuelto a instalar, no ha restaurado los datos de la copia de seguridad.

Sin embargo, todavía puedo ver la copia de seguridad de la aplicación en Settings > System > Backup > App data > [appname] y que la última vez que se hizo una copia de seguridad fue ayer.

Primero reinstalé la aplicación desde un apk descargado en el dispositivo. ¿Esto no activaría la restauración como debería hacerlo la instalación desde Google Play o a través de adb?

He probado a desinstalar de nuevo e instalar sobre adb, pero sigue sin restaurar los datos.

¿Hay alguna forma de forzarlo a restaurar los datos desde la copia de seguridad?

0 votos

0 votos

Acabo de mirar en logcat y me he dado cuenta de esto justo después de que termine la instalación: 02-21 14:20:44.034: V/BackupManagerService(914): restoreAtInstall pkg=<package> token=c restoreSet=1 02-21 14:20:44.037: D/BackupManagerService(914): MSG_RUN_RESTORE observer=null 02-21 14:20:44.037: D/BackupManagerService(914): Starting restore. 02-21 14:20:44.690: E/BackupManagerService(914): Required package metadata but got 02-21 14:20:44.700: I/BackupManagerService(914): Restore complete.

5voto

Christine Puntos 11

Voy a publicar una respuesta alternativa a mi propia pregunta, a pesar de haber aceptado la respuesta anterior. La razón es que desde entonces he aprendido, en mi dispositivo personal, que la copia de seguridad y restauración de Android no funciona tan bien como esperaba, así que mientras que no era el caso en el caso anterior, esto podría ser el caso de otras personas que encuentran esta pregunta.

Aparentemente, si se restaura en un dispositivo diferente o incluso en el mismo dispositivo con un sistema operativo diferente, no restaurará nada más que los datos del sistema. Esto me pasó cuando borré mi Moto X (2ª generación) para instalar LineageOS en él.

Esto significa que los ajustes de las notificaciones, las contraseñas del WiFi y las imágenes de fondo se guardarán, mientras que los datos de las aplicaciones (juegos guardados, ajustes de las aplicaciones, etc.) no .

No estoy seguro de si las nuevas versiones de Android vienen con una mejor funcionalidad de copia de seguridad y restauración, pero por ahora voy a utilizar una aplicación de copia de seguridad especializada (Helium en este momento) para mantener mis datos bastante respaldados, y también utilizar eso cuando se transfiere a un nuevo dispositivo.

Si alguien tiene alguna experiencia positiva con el propio Backup and Restore de Android que realmente restaure los datos de la aplicación en un nuevo dispositivo, por favor, comparta los detalles de las versiones de Android y el dispositivo :)

Actualización sobre el helio

He aquí unas palabras sobre mi experiencia con Helium hasta ahora.

Al principio me decepcionó un poco, debido a algunas limitaciones de la aplicación. Con la versión gratuita no se puede configurar una copia de seguridad programada, por lo que tuve que iniciarla manualmente cada vez. Esto, sin embargo, se convirtió en algo extremadamente tedioso, ya que no puedes guardar una "selección" de aplicaciones para hacer una copia de seguridad, por lo que tenías que desplazarte por todas tus aplicaciones cada vez. Así que compré la versión premium, para poder programar las tareas de copia de seguridad.

Pero durante algún tiempo esto tampoco funcionó, porque la app seguía perdiendo la "autorización" o lo que sea, así que tenía que conectarlo por USB con la depuración USB activada y ejecutando la app de escritorio de Helio cada vez que quería hacer una copia de seguridad. Y no se puede activar una copia de seguridad, sólo cambiar la hora programada hasta "dentro de un minuto" y esperar...

Luego, eso pareció dejar de ser un problema, y la autorización ya no se pierde, ni siquiera en los reinicios. Pero otro problema es que la copia de seguridad no puede ejecutarse si la pantalla está bloqueada. Me gustaría que la copia de seguridad se ejecutara automáticamente por la noche, mientras mi teléfono se está cargando y tiene WiFi, pero sólo me despierto con un mensaje de que la copia de seguridad no se ha podido ejecutar, debido al bloqueo de la pantalla. Esto es más fácil de arreglar, simplemente tocando el mensaje para ejecutar la copia de seguridad, pero significa que entonces tengo que dejar el teléfono hasta que haya terminado.

En general, funciona y me alegro de tener copias de seguridad (haciendo una copia de seguridad en Google Drive), pero podría funcionar mucho mejor.

Todavía no he probado a restaurar, así que puede que haya una llamada para otra actualización cuando haya visto lo bien que funciona :-)

Actualización 2 sobre el helio

Ha comenzado a perder la autorización todo el tiempo, lo que significa que las copias de seguridad automáticas no están sucediendo, y tengo que volver a autorizar y reprogramar a "ahora" para activarlas. Me gustaría saber si algún otro usuario de Helium tiene alguna experiencia con esto.

Actualización 3 sobre el helio

No pierde tanto la autorización, lo que probablemente se deba a que mi teléfono no se reinicia tanto (tengo una batería nueva). Además, ha habido algunas actualizaciones de Helium, por lo que ahora se pueden guardar selecciones de aplicaciones, lo que es muy útil si se quiere actualizar las aplicaciones que se respaldan en una copia de seguridad recurrente (casi tan útil como si se pudiera editar la configuración de la copia de seguridad recurrente).

2voto

beeshyams Puntos 82

adb shell bmgr restore <TOKEN> <PACKAGE>

Fuente

Aportaciones adicionales de la OP incorporadas a partir de los comentarios

Parece que la razón por la que no se restauró automáticamente en mi caso fue que había muchos dispositivos diferentes respaldados en la misma cuenta de Google, y no sabía qué "conjunto" utilizar. Obtuve una lista de "conjuntos" con el comando adb shell bmgr list conjuntos y luego podría utilizar su comando con el conjunto deseado como este: adb shell bmgr restore <SET> <PACKAGE> .

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X