Comment utiliser Environment.getExternalStorageDirectory()
pour lire une image enregistrée sur la carte SD ou existe-t-il un meilleur moyen de le faire?
Environment.getExternalStorageDirectory().getAbsolutePath()
Vous donne le chemin complet de la carte SD. Vous pouvez ensuite effectuer des opérations d'E/S sur fichiers normales à l'aide de Java standard.
Voici un exemple simple pour écrire un fichier:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
// Not sure if the / is on the path or not
File f = new File(baseDir + File.separator + fileName);
f.write(...);
f.flush();
f.close();
Modifier:
Oups - vous vouliez un exemple de lecture ...
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";
// Not sure if the / is on the path or not
File f = new File(baseDir + File.Separator + fileName);
FileInputStream fiStream = new FileInputStream(f);
byte[] bytes;
// You might not get the whole file, lookup File I/O examples for Java
fiStream.read(bytes);
fiStream.close();
Sachez cependant que getExternalStorageDirectory () ne fonctionnera pas correctement sur certains téléphones, par ex. mon Motorola razr maxx, car il a 2 cartes/mnt/sdcard et/mnt/sdcard-ext - pour les cartes SD internes et externes respectueusement. Vous obtiendrez uniquement la réponse de/mnt/sdcard à chaque fois. Google doit fournir un moyen de faire face à une telle situation. Comme il rend beaucoup d'applications prenant en charge la carte SD (i.e card backup) échouant misérablement sur ces téléphones.
Comme décrit dans la documentation Environment.getExternalStorageDirectory () :
Environment.getExternalStorageDirectory () Retourne le primaire répertoire de stockage partagé/externe.
Voici un exemple d'utilisation de la lecture d'une image:
String fileName = "stored_image.jpg";
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String pathDir = baseDir + "/Android/data/com.mypackage.myapplication/";
File f = new File(pathDir + File.separator + fileName);
if(f.exists()){
Log.d("Application", "The file " + file.getName() + " exists!";
}else{
Log.d("Application", "The file no longer exists!";
}