Как сделать снимок и сохранить его с помощью встроенной камеры Android

У меня проблема с захватом изображения и его сохранением из встроенного приложения камеры. Вот образец моего кода.

_path = Environment.getExternalStorageDirectory() + "make_machine_example.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, 0 );

После того, как фотография была сделана и я вернулся к своему исходному действию, когда я перехожу к своей SD-карте через Android DDMS File Explorer, изображения там нет. Кто-нибудь знает, почему это не сохраняется?

35
задан ninjasense 26 February 2011 в 08:38
поделиться

2 ответа

Вы проверили, что выводит Environment.getExternalStorageDirectory (), потому что, если он не содержит конечного разделителя файлов (/), ваше изображение окажется в каталоге, которого нет на SD-карте, например:

 /mnt/sdcardmake_machine_example.jpg

Когда на самом деле вам нужно:

 /mnt/sdcard/make_machine_example.jpg

Попробуйте вместо этого следующий код:

 _path = Environment.getExternalStorageDirectory() + File.separator +  "make_machine_example.jpg";
21
ответ дан 27 November 2019 в 07:11
поделиться

1. Просто используйте

new File(Environment.getExternalStorageDirectory(),  "make_machine_example.jpg");

и не беспокойтесь о разделителях.

2. Раньше сталкивался с такой же проблемой. В телефонах SenseUI есть специальное приложение камеры, которое не создает файл. Какое устройство вы используете? Возможно, это уже исправлено в последних версиях устройств, но это также может быть проблемой. Итак, вот полный пример того, как с этим справиться Проблемы с сохранением фотографии в файл .

14
ответ дан 27 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

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