У меня есть приложение, которое позволяет пользователю делать снимок с собственной камеры телефона, я не хочу реализовывать все функции камеры (Я не хочу потерять автофокусировку, вспышку или некоторые другие свойства, что нативная камера может иметь), поэтому я сделать этот вызов:Избегайте того, что галерея сохраняет снимок, сделанный камерой на Android.
File folder = new File(Environment.getExternalStorageDirectory(),"folder");
folder.mkdirs();
File nomedia = new File(folder,".nomedia");
try{
nomedia.createNewFile();
}catch (IOException e){
e.printStackTrace();
Log.e("error", e.getMessage());
}
File file = new File(folder,"image.jpeg");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
imageUri = Uri.fromFile(file);
if(imageUri != null){
Log.i(TAG, "imageUri: " + imageUri.getPath());
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
}
Тогда в кнопке у меня есть исполнение намерения:
startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Это прекрасно работает, оно открывает камеру, я получаю обратный вызов, когда я беру пиктограмму ure, и если я посмотрю на папку с файловым проводником телефона, я вижу изображение, а также файл «.nomedia», который я создал.
Дело в том, что я не хочу, чтобы камера хранила это изображение в галерее телефона, потому что, как-то это «волшебно»;) добавлено в Галерею Android, и я подумал с добавлением «. nomedia "и создавая картинку в отдельной папке, Галерея не будет ее сканировать. Идея состоит в том, что фотографии предназначены только для внутреннего использования приложения.
Есть ли вообще избежать этого? Я действительно искал и пробовал много разных способов, но я не могу его решить.
Надеюсь, я объяснил это объяснением.
Заранее благодарен!
Я знаю, что это, вероятно, не помогает. Но я столкнулся с той же проблемой некоторое время назад и должен был сдаться. Если я правильно помню, я попытался перенести изображение в приложение-частное хранилище, что помешало галерее показать его, но это также предотвратило автоматическое создание миниатюр. –
попробуйте добавить период '.' к передней части папки, в которой вы храните изображение. Например, в вашем примере попробуйте переключиться на «.folder» в качестве имени вашего каталога. И какое устройство вы тестируете? – FoamyGuy
Я устал, но это не помогает @Tim, я использую Galaxy S Plus, но у меня тоже такая же проблема в HTC Wildfire. – Kuu