ACTION_MEDIA_SCANNER_SCAN_FILE не всегда добавляет файл в MediaStorage

У меня есть следующая строка

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + fileOnDownload)));

Где fileOnDownload — это путь к файлу, подобному этому:

/storage/emulated/0/Downloads/song.mp3

Но иногда при отправке трансляции не перезагружается MediaStore (по крайней мере, на Android O)
Полный код можно посмотреть здесь
Я новичок в Android MediaStore, так что не надо не будьте слишком грубы, пожалуйста :)


person Dani Torres    schedule 11.06.2018    source источник
comment
Возможный дубликат Android: обновление галереи после сохранения новых изображений   -  person Yoav Feuerstein    schedule 29.01.2019


Ответы (1)


попробуйте этот код:

Intent intent = 
      new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(file));
sendBroadcast(intent);

и если приведенный выше код не работает, вы можете попробовать использовать MediaScannerConnection!

вот хороший учебник:

https://www.grokkingandroid.com/adding-files-to-androids-media-library-using-the-mediascanner/

person Amir Hossein Mirzaei    schedule 11.06.2018
comment
Я выполнил код, прежде чем убедиться, что файл существует, поэтому иногда он работал - person Dani Torres; 11.06.2018
comment
MediaScannerConnection следует предпочесть, согласно другим ответам на подобные вопросы - см. здесь: stackoverflow.com/a/5814533/997940, stackoverflow.com/a/19867466/997940 - person Yoav Feuerstein; 29.01.2019