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

Trigger the rescan of MediaStore programmatically

请注意,新添加的照片(使用 "adb push" 复制到图片文件夹中)未包含在 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在Android4.4后无法使用。

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

(2)Android什么情况下会重新扫描?

Already tried

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

is there other way to programatically trigger the rescan?

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