2010-07-30 5 views
2

J'utilise la méthode getExternalFilesDir (null) pour enregistrer sur la carte SD. L'enregistrement et la lecture de la carte SD est correct. Le problème que j'ai est que chaque fois que je modifie quelque chose dans Eclipse et relance l'application, les données sur la carte SD est supprimée. Je sais que l'enregistrement dans le répertoire renvoyé par getExternalFilesDir (null) autorisera la suppression des fichiers lors de la désinstallation de mon application, mais existe-t-il un moyen de l'éteindre uniquement pour la mise à jour de l'application? Est-ce la seule raison pour laquelle je le fais depuis Eclipse et ne supprimera pas les données lorsque l'application sera mise à jour sur le marché? Merci pour toute information que vous pouvez me donner!Android: L'enregistrement sur la carte SD est toujours supprimé lors de la réinstallation

Répondre

4

This is a bug in Android 2.2. Des correctifs seront disponibles au cours des prochains mois pour les appareils 2.2. Vous voudrez peut-être attendre jusqu'à la prochaine mise à jour du système d'exploitation Android.

+0

Merci pour la réponse. Alors, où dois-je enregistrer les fichiers sur la carte SD? Y a-t-il une norme à suivre? –

+0

@Corey Alexander: il n'y a pas de standard actuel, mis à part mettre des choses dans un répertoire (pour ne pas encombrer la racine de la carte SD). – CommonsWare

0

Si vous avez besoin des données, pourquoi n'essayez-vous pas de renommer le paquet. Dans ce cas, il se peut que vous ayez plusieurs copies de l'application, mais je pense que vos données restent intactes.

2

D'après ce que j'ai lu ailleurs, la norme actuelle du mois est un sous-répertoire de/sdcard/Android. i.E .:

final java.io.File Storage = android.os.Environment.getExternalStorageDirectory(); 
final java.io.File Dir = new java.io.File (Storrage, "Android/" + getPackageName()); 
Dir.mkdirs(); 

Nous ne pouvons qu'espérer que le bug est corrigé très bientôt.

+0

Je pense que c'est là que le fichier est sauvegardé getExternalFilesDir (null). Donc, si je sauvegarde à l'endroit que vous recommandez, je pense que j'obtiendrais le même bug indirectement. –

+1

Non, getExternalFilesDir (null) vous donne: "Android/data /" + getPackageName() Notez la partie "données". Si vous utilisez ce répertoire ("Android/data") alors les fichiers seront supprimés même si vous n'avez pas utilisé getExternalFilesDir (null) pour obtenir/créer le répertoire. Croyez-moi j'ai tout essayé. – Martin

+0

Sur mon téléphone, aucune application ne s'écrit par quelque chose sous sdcard/Android. Cela ne semble pas être une pratique :) Et peut-être en effet il n'est pas sage de mettre quelque chose sous "Android" qui n'est pas réellement géré par Android. – altumano

Questions connexes