Android MediaScanner: удалить файлы изображений из галереи
Я разрабатываю приложение, которое скрывает файлы изображений в приложении галереи.
Для этого я создаю файл .nomedia и запрашиваю обновление MediaScanner.
Этот метод работает для случая, когда я должен показывать скрытые файлы, т.е. удалять файл .nomedia и проверять каждый файл, присутствующий в этой папке, для показа в галерее. Но когда я хочу скрыть изображения, поместив файл .nomedia, а затем попросив MediaScanner отсканировать все файлы в этой папке, не скрывать эти фотографии из галереи.
Я использую следующий код для сканирования файла
private void refreshPic(String path) {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(path);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
}
Я делаю это правильно? Или удаление файлов из Media Store требует каких-то других вещей?
Тестирующее устройство: Nexus 5 (4.4.2)
Спасибо.
Ответы
Ответ 1
Отправка трансляции не будет работать.
Используйте ContentResolver для обновления MediaStore
удалить (android.net.Uri, ava.lang.String, ava.lang.String)
update (android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String)
Ответ 2
Я добавил файл .nomedia
в нашу корневую папку приложения, и через день или около того (перезагрузка, похоже, делает это быстрее) файлы были удалены из галереи пользователя без каких-либо других вызовов в медиа-сканер.
Увидели это поведение на Android 4.4.2 и 6.0.1.