Foto wird nicht im gewünschten Verzeichnis gespeichert

  • Antworten:1
Andreas Engel
  • Forum-Beiträge: 14

20.05.2011, 16:13:25 via Website

Hallo,

ich habe eine Problem mit folgendem Code:

1case R.id.miTakePhoto:
2 Log.d("DroidCachebox", "Starting camera on the phone...");
3
4 //define the file-name to save photo taken by Camera activity
5 String directory = Config.GetString("UserImageFolder");
6 if (!Global.DirectoryExists(directory))
7 {
8 Log.d("DroidCachebox", "Media-Folder does not exist...");
9 return false;
10 }
11
12 String fileName = directory + "/" + "DCB-photo-name.jpg";
13
14 //create parameters for Intent with filename
15 ContentValues values = new ContentValues();
16 values.put(MediaStore.Images.Media.TITLE, fileName);
17 values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
18 //imageUri is the current activity attribute, define and save it for later usage (also in onSaveInstanceState)
19 imageUri = getContentResolver().insert(
20 MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
21 //create new Intent
22 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
23 intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
24 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
25 startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
26
27 return true;

Das Foto wird zwar aufgenommen, aber nicht im gewünschtem Verzeichnis mit dem gewünschtem Namen gespeichert. Sondern landet im "normalen" Foto Verzeichnis mit dem Standardnamen.

Was mache ich falsch?
Der Filename String enthält: "/mnt/sdcard/cachebox/User/Media/DCB-photo-name.jpg"

Vielen Dank

Andreas

Antworten
Andreas Engel
  • Forum-Beiträge: 14

22.05.2011, 18:00:22 via Website

Dieser Code macht es richtig :)

1private Uri imageUri;
2private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
3private static File mediafile = null;
4
5mediafile = new File(directory + "/" + basename + ".jpg");
6
7final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
8intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mediafile));
9intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
10startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

Antworten