0 votes

Obtenir un fichier de notre application sur l'appareil d'un client

Je travaille pour une entreprise qui a développé une application Android, mais depuis, les gars qui l'ont écrite sont partis. Je suis un débutant en matière de développement Android.

Nous sommes dans une situation où notre client a utilisé l'application et dispose de données, mais quelque chose s'est produit et les données ne peuvent pas être téléchargées à partir de l'application (ce qu'elles devraient normalement faire). Le client affirme que les données sont coûteuses et critiques. Nous pensons qu'une table de la base de données a été corrompue.

J'ai essayé de leur donner une version de l'application qui téléchargerait le fichier contenant les données, mais lorsque le lien est cliqué, l'erreur "net::ERR_ACCESS_DENIED" apparaît car le fichier se trouve dans le stockage protégé de l'application (file:///data/user/0/com.mycompany.myapp/files/projects/projectname/data.sqlite).

Je ne sais vraiment pas ce que l'on peut faire pour récupérer le fichier. Avez-vous des suggestions ?

Notre application a allowBackup=true et targetSdkVersion=31 dans son AndroidManifest.xml et l'application fonctionne sous Android 12.

0voto

pr0nin Points 353

Ma première pensée était que lorsque la sauvegarde est autorisée, vous devriez pouvoir extraire le fichier en utilisant adb backup commandement. Malheureusement, cela ne fonctionne plus seulement sur Android depuis environ 12 pour les applications qui ont une targetSDKVersion de 31 ou plus récente.

Il n'y a donc qu'un seul moyen d'obtenir le fichier par le biais d'une nouvelle version de l'application :

La solution que je recommande est d'implémenter une nouvelle fonctionnalité dans votre application qui permette d'exporter les données du répertoire privé de l'application et de les sauvegarder, par exemple, dans la section "sdcard" d'Android.

Vous pouvez également essayer de mettre en œuvre une toute nouvelle application qui utilise le même nom de paquet/identifiant d'application et la même clé de signature APK. Le site versionCode dans AndroidManifest.xml doit être supérieure à toutes les versions que vous avez déjà publiées. Cette nouvelle application ne doit avoir qu'un seul bouton pour lancer le processus de copie de la base de données importante vers la section sdcard. Cette application peut ensuite être installée manuellement en tant que mise à jour afin que les données internes de l'application soient conservées et puissent ensuite être exportées.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X