Changer le nom d'enregistrement d'une image
Bonjour à tous,
Après mainte recherche sur la toile, je m'adresse à vous pour vous exposer mon problème. En effet je développe une application où je peux prendre des photos.
Mon problème est que quand j'enregistre sur la carte SD la photo, il me la stock avec comme nom un ensemble de chiffres (1360800901715.jpg) et je n'arrive pas à changer ce nom pour mettre ce style : appli_140213012600.jpg
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| // Callback pour la prise de photo
Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Log.i("methode","onPictureTaken()");
if (data != null) {
// Enregistrement de votre image
try {
if (stream != null) {
stream.write(data);
stream.flush();
stream.close();
}
} catch (Exception e) {
String err = (e.getMessage()==null)?"not error":e.getMessage();
Log.e("error",err);
}
// On redémarre la prévisualisation
camera.startPreview();
}
}
};
private void SavePicture() {
Log.i("Methode", "SavePicture");
try {
SimpleDateFormat timeStampFormat = new SimpleDateFormat(
"yyyy-MM-dd-HH.mm.ss");
String fileName = "wenria_" + timeStampFormat.format(new Date())
+ ".jpg";
Log.i("fileName", fileName);
// Création de l'intent
Intent intent = new Intent();
// On rajoute le nom saisie dans l'intent
intent.putExtra("uri", fileName);
// On retourne le résultat avec l'intent
setResult(RESULT_OK, intent);
// Metadata pour la photo
ContentValues values = new ContentValues();
values.put(Media.TITLE, fileName);
values.put(Media.DISPLAY_NAME, fileName);
values.put(Media.DESCRIPTION, "Image prise par Wenria Xeninfo");
values.put(Media.DATE_TAKEN, new Date().getTime());
values.put(Media.MIME_TYPE, "image/jpeg");
// Support de stockage
Uri taken = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI,
values);
Log.i("URI", ""+Media.EXTERNAL_CONTENT_URI);
// Ouverture du flux pour la sauvegarde
stream = (FileOutputStream) getContentResolver().openOutputStream(
taken);
camera.takePicture(null, pictureCallback, pictureCallback);
} catch (Exception e) {
String err = (e.getMessage()==null)?"SD Card failed":e.getMessage();
Log.e("sdcard-err2:",err);
}
} |
Je pensais que le fileName me stockerai l'image avec ce nom mais ce n'est pas le cas.
Code:
1 2
| fileName: wenria_2013-02-14-01.31.04.jpg
URI: content://media/external/images/media |
Merci d'avance pour vos réponses.