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)

Спасибо.


person Kapil Jituri    schedule 08.04.2014    source источник
comment
Вы когда-нибудь находили решение этой проблемы?   -  person DominicM    schedule 09.09.2015
comment
Вы нашли решение? @DominicM или ты?   -  person Gaurav Pangam    schedule 15.10.2015
comment
Пожалуйста, поделитесь своим ответом, если вы нашли решение, с нетерпением его жду.   -  person Gaurav Pangam    schedule 21.11.2015
comment
Я просто вместо использования. nomedia вырежьте файл из исходного места и переименуйте его с другим самоопределяемым расширением, а когда захотите показать его снова, просто измените расширение. Если, например, мое изображение pic1.jpg, я сохраняю его как pic1.aaa, поэтому галерея не может его найти.   -  person bryan c    schedule 31.03.2016


Ответы (2)


Отправка рассылки не работает. Используйте ContentResolver для обновления MediaStore

удалить(android.net.Uri, ava.lang.String, ava.lang.String)

update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String)

person shijin    schedule 26.04.2016

Я добавил файл .nomedia в корневую папку нашего приложения, и через день или около того (перезапуск, кажется, делает это быстрее) файлы были удалены из галереи пользователя без каких-либо других вызовов сканера мультимедиа.

Видел такое поведение на Android 4.4.2 и 6.0.1.

person Diederik    schedule 05.10.2017