Get Path and Filename from Camera intent result

Я хочу создать изображение с помощью намерения камеры и сохранить его в папке DCIM по умолчанию. Затем я хочу получить путь/имя файла, в котором хранится изображение.

Я пытаюсь сделать это с помощью следующего кода:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);

С этим кодом камера открывается и после того, как я сделал один снимок, она закрывается и сохраняет снимок в папку изображений по умолчанию (обычно /dcim/camera или sdcard/dcim/camera...)

но как мне теперь получить путь и имя файла сделанного снимка? Я перепробовал почти все в onActivityResult. I tried

String result = data.getData();

and

String result = data.getDataString();

and

String result = data.toURI();

and

Uri uri = data.getData();

etc.

Я исследовал последние два дня, чтобы найти решение для этого, есть много статей в Интернете и на stackoverflow, но ничего не работает. Мне не нужна миниатюра, мне нужен только путь (uri?) к изображению, которое сняла камера.

Спасибо за любую помощь

EDIT: Когда я пробую:

path=Environment.DIRECTORY_DCIM + "/test.jpg";
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_PICTURE); 

он сохраняет изображение не как test.jpg, а с обычным именем 2011-10-03.....jpg (но это тоже нормально, мне нужен только путь к изображению, неважно, как оно называется).

Best regards

EDIT Again

path=Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/";
File file = new File(path,"test111111111.jpg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

startActivityForResult(intent, TAKE_PICTURE); 

Когда я пробую это, изображение сохраняется в нужную папку и с заданным именем (например, test111111.jpg). Но как мне теперь получить путь к файлу в onActivityResult?

17
задан bihcoder 3 October 2011 в 16:10
поделиться

1 ответ

Когда вы запускаете ACTION_IMAGE_CAPTURE, вы можете передать дополнительные MediaStore.EXTRA_OUTPUT как URI файла, в который вы хотите сохранить изображение.

Вот простой пример:

   File file = new File(path);
   Uri outputFileUri = Uri.fromFile(file);

   Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
   intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

   startActivityForResult(intent, TAKE_PICTURE); 

РЕДАКТИРОВАТЬ: Я только что попробовал на своем устройстве и file.createNewFile() решил проблему для меня.

0
ответ дан 30 November 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: