Plop les gens !

Dans le cadre d'un projet je dois développer une application Android permettant de prendre une photo et de l'enregistrer sur la carte SD pour subir différent traitement par la suite.

Grâce à ce tutoriel j'ai pu faire une appli qui prend une photo et l'enregistre, mais le nom est une suite de chiffre incompréhensible et toujours différente. Hors, je dois ensuite récupérer cette image. Je veux passer par le chemin d’accès avec un Environment.getExternalStorageDirectory().getPath(), mais je ne connais pas le nom exact de l'image. Je cherche donc à renommer l'image lors de l'enregistrement (par exemple, image.jpg, au lieu de 01567343572.jpg).

J'ai déjà parcouru plusieurs tutos, plusieurs forums, ainsi que la FAQ Android, mais je ne parviens pas à ce que je veux...

Le code qui prend la photo avec les différents paramètres est le suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
private void SavePicture() {
    try {
        SimpleDateFormat timeStampFormat = new SimpleDateFormat(
                "yyyy-MM-dd-HH.mm.ss");
        String fileName = "photo_" + timeStampFormat.format(new Date())
                + ".jpg";
 
        // 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 FormationCamera");
        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);
 
        // Ouverture du flux pour la sauvegarde
        stream = (FileOutputStream) getContentResolver().openOutputStream(
                taken);
 
        camera.takePicture(null, pictureCallback, pictureCallback);
    } catch (Exception e) {
        // TODO: handle exception
    }
 
}
Et le code qui l'enregistre est celui-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Callback pour la prise de photo
Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
 
    public void onPictureTaken(byte[] data, Camera camera) {
        if (data != null) {
            // Enregistrement de votre image
            try {
                if (stream != null) {
                    stream.write(data);
                    stream.flush();
                    stream.close();
                }
            } catch (Exception e) {
                // TODO: handle exception
            }
 
            // On redémarre la prévisualisation
            camera.startPreview();
        }
    }
};
Je pense avoir été clair.. Des idées?

Merci !