Как получить изображение, только что записанное с камеры

Ниже мой код, но не дает мне путь изображения в onActivity результате

Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); Log.w("jay", "Camera Image Path :" + selectedImagePath); Toast.makeText(MiscansOther_pannel.this, selectedImagePath, Toast.LENGTH_LONG).show(); 

Solutions Collecting From Web of "Как получить изображение, только что записанное с камеры"

Это работает для меня …

Код:

 Uri selectedImageUri = data.getData(); selectedImagePath = getRealPathFromURI(selectedImageUri); 

Метод: getRealPathFromURI()

 //---------------------------------------- /** * This method is used to get real path of file from from uri * * @param contentUri * @return String */ //---------------------------------------- public String getRealPathFromURI(Uri contentUri) { try { String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } catch (Exception e) { return contentUri.getPath(); } } 

РЕДАКТИРОВАТЬ:

Как я заметил на некотором устройстве после захваченного изображения данные в onActivityResult() имеют значение NULL ,

Таким образом, альтернативный путь. Передайте определенное имя файла изображения в качестве аргумента для вашего намерения для захвата изображения в putExtra параметра putExtra .

Затем добавьте это изображение Uri в Media Store, теперь используйте этот Uri для дальнейшего использования,

Вы можете проверить, захвачен ли образ или нет File.exist() ,

Код выглядит,

 ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, "Image File name"); Uri mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intentPicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intentPicture.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); startActivityForResult(intentPicture,ACTION_TAKE_PICTURE); 

Теперь вы можете использовать тот же метод для получения пути к файлу от Uri,

В этом случае он будет в onActivityResult() ,

 selectedImagePath = getRealPathFromURI(mCapturedImageURI); // don't use data.getData() as it return null in some device instead use mCapturedImageUR uri variable statically in your code,