У меня проблема с захватом изображения и его сохранением из встроенного приложения камеры. Вот образец моего кода.
_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, изображения там нет. Кто-нибудь знает, почему это не сохраняется?
Вы проверили, что выводит Environment.getExternalStorageDirectory (), потому что, если он не содержит конечного разделителя файлов (/), ваше изображение окажется в каталоге, которого нет на SD-карте, например:
/mnt/sdcardmake_machine_example.jpg
Когда на самом деле вам нужно:
/mnt/sdcard/make_machine_example.jpg
Попробуйте вместо этого следующий код:
_path = Environment.getExternalStorageDirectory() + File.separator + "make_machine_example.jpg";
1. Просто используйте
new File(Environment.getExternalStorageDirectory(), "make_machine_example.jpg");
и не беспокойтесь о разделителях.
2. Раньше сталкивался с такой же проблемой. В телефонах SenseUI есть специальное приложение камеры, которое не создает файл. Какое устройство вы используете? Возможно, это уже исправлено в последних версиях устройств, но это также может быть проблемой. Итак, вот полный пример того, как с этим справиться Проблемы с сохранением фотографии в файл .