android - ACTION_MEDIA_SCANNER_SCAN_FILE 并不总是将文件添加到 MediaStorage

标签 android mediastore

我有以下行

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

其中 fileOnDownload 是文件的路径,如下所示:

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

但有时发送广播时,它不会重新加载 MediaStore(至少在 Android O 上)
可以看到完整代码here
我对 Android MediaStore 还很陌生,所以请不要太粗鲁:)

最佳答案

试试这个代码:

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/

关于android - ACTION_MEDIA_SCANNER_SCAN_FILE 并不总是将文件添加到 MediaStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50789787/

相关文章:

android - CursorAdapter 在 Android 上如何在 GridView 中工作

android - 在 ListView 中重复图像...正在从视频中加载缩略图

java - Android - 视频文件的缩略图

android - Webview 从 Assets 目录加载 html

Android TabHost 中心 Activity 选项卡

android - 在 Listview Titanium SDK 中更改列表项的背景颜色

android - 在 Android 11 上构建文件资源管理器

Android Camera Intent - 内存不足错误和旋转错误

java - 即使我使用其他应用程序,也可以防止状态栏下拉

android - 如何在 Xamarin Imageview 中显示 MySQL BLOB 图像?