I'm doing it:
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); final File storage = Environment.getExternalStorageDirectory(); final Uri uri = Uri.fromFile(new File(storage, System.currentTimeMillis() + ".jpg")); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(intent, id);
and process this photo, I do this:
private String getLastImagePath() { final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA }; final String imageOrderBy = MediaStore.Images.Media._ID + " DESC"; final Cursor imageCursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, null, null, imageOrderBy); if (imageCursor.moveToFirst()) { final String fullPath = imageCursor.getString(imageCursor .getColumnIndex(MediaStore.Images.Media.DATA)); return fullPath; } else { throw new RuntimeException(); } }
However, I keep getting messages like this:
07-02 14:46:54.751: E/BitmapFactory(23119): Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20130702_144653.jpg: open failed: ENOENT (No such file or directory)
If I checked the Gallery, the photo is not there, so I assume that Intent ignores the value of MediaStore.EXTRA_OUTPUT .
Is there anything I can do that is not related to writing my own Camera solution?
source share