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);
}
} |
Partager