Цель камеры/Действия - не сохранять в галерее
Я использую Активность камеры, чтобы сделать снимок. Я вызываю его с дополнительным параметром MediaStore.EXTRA_OUTPUT. Изображение правильно сохраняется в предоставленном пути, поместив его в папку галереи, так что я могу просмотреть изображение в приложении "Галерея" - могу ли я избежать этого?
...
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
iImageOutputUri = Uri.fromFile( file );
// Start camera intent to capture image
Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, iImageOutputUri );
startActivityForResult( intent, CAPTURE_IMAGE );
...
Спасибо
Ответы
Ответ 1
Просто замените свой код
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg" );
со следующим кодом
File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "Test.jpg");
Описание getExternalFilesDir():
Возвращает абсолютный путь к каталогу в основной внешней файловой системе (где-то на Environment.getExternalStorageDirectory())
, где приложение может размещать постоянные файлы, которыми он владеет. Эти файлы являются внутренними для приложений и обычно не видны пользователю как носитель.
Ответ 2
Как сохранить ваши изображения с расширением без изображения? Что-то вроде michael.photo вместо michael.jpg/png и т.д. Каким образом приложение Gallery не будет принимать их, и я видел, что многие такие приложения сохраняют безопасность, например, делает это.
Ответ 3
Я не верю, что вы можете избежать этого. Приложение галереи просматривает вашу SD-карту для изображений и автоматически отображает их.