secure - En Android hay alguna forma de preservar las referencias compartidas después de una desinstalación
restore android backup (7)
Como dijo edthethird: mejor coloque los archivos físicos en el almacenamiento externo del dispositivo y léalos en la instalación. Si el contenido del archivo debe ocultarse a los usuarios, simplemente realice un proceso simple de cifrado / descifrado.
Estoy guardando algunos metadatos de la aplicación en SharedPreferences
. Cada vez que desinstalo la aplicación y la SharedPreferences
instalar, se eliminan las SharedPreferences
.
¿Hay alguna manera de hacer que eso permanezca, de modo que si el usuario desinstala y reinstala, puede recuperar sus datos antiguos?
Debe agregar un BackupAgentHelper
a su aplicación. Junto con SharedPreferenceBackupHelper
, hace una SharedPreferences
seguridad de las SharedPreferences
en la nube (si el dispositivo lo admite). Cuando la aplicación se reinstala, los datos se restauran.
Ver:
SharedPreferenceHelper (contiene todo el código que necesita para implementarlo)
Desde Android 6.0 se ha podido utilizar:
<application
android:allowBackup="true">
Al configurarlo como verdadero, sus datos (las preferencias compartidas y otros) se guardarán en la nube de Google y se restaurarán la próxima vez que se instale la aplicación. Puedes leer más sobre esto here . Cabe señalar que la configuración predeterminada es verdadera desde 6.0.
Esto está realmente integrado, solo necesitas implementar un par de clases para habilitarlo. Se realizará una copia de seguridad de los datos y se vincularán a la cuenta de Google del usuario, por lo que se restaurarán automáticamente si instalan la aplicación en un dispositivo nuevo, la reinstalan, etc.
Estoy bastante seguro de que SharedPreferences
siempre se elimina junto con la aplicación. En mi opinión, la mejor manera de hacerlo sería escribir un archivo oculto (algo como ".nameOfFile") en la tarjeta SD o en la memoria interna y tener también las preferencias.
Sin embargo, debe usar SharedPreferences, es el estándar de Android para la administración de preferencias. Podría hacerlo para que la primera vez que su aplicación se cargue, verifique la tarjeta SD en busca de un archivo oculto que se habría creado la última vez que lo abrieron. Si el archivo existe, entonces lea esas entradas y almacénelas en SharedPreferences; si no, el usuario lo eliminó o el usuario nunca ha instalado su aplicación antes.
Esta es solo una forma de hacerlo, y puede que no sea la más eficiente, ¡pero espero que ayude!
SharedPrefs y DBs se eliminan cuando desinstala. Tendría que escribir fuera de la aplicación (por ejemplo, sd).
Una forma de hacerlo sería almacenar los datos del usuario en un servidor. Luego, cuando el usuario vuelve a instalar la aplicación o la instala en otro dispositivo, puede "sincronizar" sus datos de usuario. Eso sería solo una pequeña descarga HTTP de los datos, probablemente almacenados en JSON, que luego analizaría y escribiría en las SharedPreferences.
Si no desea mantener su propio servidor, puede usar un servicio en la nube como Dropbox. Así es como funciona la aplicación 1Password Reader.