Étant donné que vous utilisez Stockage externe, votre application doit connaître l'état de stockage externe, que vous pouvez obtenir via Environment.getExternalStorageState()
.
Vous ne devez accéder au stockage externe que si l'état est MOUNTED
.
Si vous essayez d'ouvrir un fichier (ou SQLite DB;! Il est juste un fichier) lors du démarrage de l'appareil, vous aurez certainement ont des problèmes, parce que stockage externe est pas monté jusque dans le démarrage de l'appareil (après L'écran d'accueil est affiché).
La sortie de ceci est d'enregistrer un IntentFilter
pour être averti de tous les changements dans l'état de stockage externe, et se comporter en conséquence. C'est toujours une bonne idée de lire la documentation! Consultez la documentation Android pour plus de détails:
L'utilisation du stockage externe à cette fin est douteuse, car vous ne pouvez pas contrôler quand il devient indisponible! Par exemple, l'utilisateur branche son périphérique sur le port USB de son ordinateur et sélectionne l'option «Activer le stockage de masse USB» pour accéder au stockage externe de son périphérique à partir de son ordinateur. Mauvaises nouvelles! Votre application sera déconnectée du stockage externe, et très probablement sans avoir l'occasion de faire des opérations de nettoyage!
Avec cet état de choses, vous êtes maintenant à gauche avec Que faire avec toutes les données que vous souhaitez mettre dans votre base de données, si seulement il était disponible.
Pourquoi était-ce downvoted. Suis intéressé par cela aussi ... – Kurru
Oui, c'est un vrai problème. De l'aide? –
J'ai le même problème, mais avec le stockage interne de sorte que la réponse actuelle ne s'applique pas. – Zitrax