J'ai écrit du code pour sauvegarder des images sur la carte SD il y a quelques temps. Maintenant, j'ai ajouté la targetSDKVersion à mon manifeste et maintenant mon code d'enregistrement de fichier a cessé de fonctionner.Quels changements sont faits dans l'API de stockage de masse entre Android 1.5 et Android 1.6
Je peux le reproduire en enlevant le targetSdkVersion de mon manifeste de celui sur mon App n'écrira rien à la carte SD.
Y at-il un changement d'API entre Android 1.5 et 1.6 qui m'empêche d'écrire sur la carte SD?
File imageDirectory = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ FOLDER_NAME);
Log.d(ImageSaver.class.getSimpleName(), "SD Card status: "
+ Environment.getExternalStorageState());
if (!imageDirectory.exists()) {
boolean created = imageDirectory.mkdir();
Log.d(ImageSaver.class.getSimpleName(), "Created image directory "
+ imageDirectory + " " + created);
}
File imageFile = new File(imageDirectory.getAbsolutePath() + File.separator
+ name + nameSuffix + FILE_ENDING);
bitmap.compress(Bitmap.CompressFormat.PNG, FULL_QUALITY,
new FileOutputStream(imageFile));
Ceci est le code de test pour la compression d'un bitmap sur la carte SD. Avec l'entrée ne manifeste ce qui suit fonctionne pas:
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="8" />
Je reçois l'exception suivante:
09-27 11: 35: 58,689: ERREUR/ImageSaver (8672): Fichier non trouvé 9 à 27 novembre: 35: 58,689: ERROR/ImageSaver (8672): java.io.FileNotFoundException: /sdcard/FOLDER/1285580158662.png
Retrait de la ta rgetSdkVersion le fait à nouveau fonctionner sur toutes les plates-formes.
Comment exécuter le code avec le jeu targetSdkVersion?
Désolé j'ai oublié d'ajouter l'exception. Je reçois une exception Fichier introuvable pour le fichier que j'utilise pour initialiser FileOutputStream avec. Une permission manquante me donnerait une autre exception je pense. – Janusz
D'accord, non. Merci ça marche maintenant :) L'exception me conduit totalement sur la mauvaise piste. – Janusz