J'ai besoin d'un chemin d'accès au répertoire de l'application Android pour mes applications compatilbe avec toutes les versions. J'ai beaucoup cherché et je n'ai pas encore trouvé quelque chose compatible avec TOUS les appareils. Maintenant, nous avons ce morceau de code, mais il donne toujours NullPointerExcepction à picturesDir.exists()
avec U55
et ZTE
appareils.Créer un répertoire d'applications Android compatible avec toutes les versions et les périphériques
File picturesDir;
String state = Environment.getExternalStorageState();
// Make sure it's available, if there is no SD card, create new directory objects to make
// directory on device.
if (!Environment.MEDIA_MOUNTED.equals(state)) {
picturesDir = new File(Environment.getDataDirectory() + "/data/" + getApplicationContext().getPackageName() + "/Pictures/");
} else if (Environment.getExternalStorageState() != null) {
picturesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
} else{
String externalStoragePath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
picturesDir = new File(externalStoragePath + getApplicationContext().getPackageName() + "/Pictures/");
}
if (!picturesDir.exists()) {
picturesDir.mkdir();
}
Que devons-nous faire? Je ne veux pas vérifier si elle est nulle pour éviter le crash. Je veux un chemin où je peux enregistrer des images. Merci.
"il donne toujours NullPointerExcepction" - veuillez éditer votre question et publier la trace complète de la pile Java associée à cette exception. Je crois que votre algorithme, autant que l'appareil, est la source de votre difficulté, et la trace de la pile m'aidera à confirmer vos symptômes. – CommonsWare
Même si vous évitez en quelque sorte une erreur lors de la vérification de l'état de la carte SD, il est possible que la carte SD soit extraite à tout moment ou qu'une erreur E/S se produise. Donc, vous devez attraper des erreurs d'E/S de toute façon. N'essayez pas de rendre ce code joli à tout prix, vous ne pouvez pas le faire. – user1643723
Vous venez d'éditer CommonsWare! –