android - 以编程方式触发 MediaStore 的重新扫描

标签 android android-contentprovider android-mediascanner

请注意,新添加的照片(使用“adb push”复制到 Pictures 文件夹中)未包含在 MediaStore Content Provider 中。有没有办法以编程方式触发重新扫描?

已经尝试过:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse(Environment.getExternalStorageDirectory().getPath())));

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/Pictures")));

这似乎行不通。

广播Intent.ACTION_MEDIA_MOUNTED在Android 4.4之后不能使用。

(1)除了自己用MediaScannerWrapper扫描文件外,还有其他方法可以编程触发重新扫描吗?

(2)Android在什么情况下会发生rescan?

最佳答案

Already tried

您传递的是目录,而不是文件。

is there other way to programatically trigger the rescan?

使用 MediaScannerConnection 及其 scanFile() 方法。这也需要文件 AFAIK。

关于android - 以编程方式触发 MediaStore 的重新扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685587/

相关文章:

java - TextWatcher不过滤ListView?

android - ListView 对齐问题

android - 外键定义中的 sqlite 失败未知列

android - 将事件添加到 native 日历不起作用

android - 禁用 ContentProvider URI 上的通知

android - findFragmentByTag 始终返回 null

Android 内容提供商列表

android - DownloadManager 在下载后运行 MediaScanner 但不应该

android - 文件在 PC 上显示为空但在智能手机上显示为非空

android - 如何将拍摄的照片添加到 MediaStore