我正在开发一个应用程序,它隐藏了库存应用程序中的图像文件。 同样,我正在创建一个 .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)
感谢。
答案 0 :(得分:0)
发送广播不起作用。 使用ContentResolver更新MediaStore
delete(android.net.Uri, ava.lang.String, ava.lang.String)
update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String)
答案 1 :(得分:0)
我将.nomedia
文件添加到我们应用的根文件夹中,大约一天后(重启似乎可以更快地发生这种情况),文件已从用户的图库中删除,而没有任何其他调用媒体扫描程序。
在Android 4.4.2和6.0.1上看到了这种行为。