13

我正在开发一个在图库应用程序中隐藏图像文件的应用程序。同样,我正在创建一个.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);
}

我做对了吗?或者从媒体商店中删除文件是否需要一些其他的东西?

测试设备:Nexus 5 (4.4.2)

谢谢。

4

2 回答 2

0

我将.nomedia文件添加到我们应用程序的根文件夹中,大约一天后(重新启动似乎使这种情况发生得更快)文件从用户的图库中删除,而无需对媒体扫描仪进行任何其他调用。

在 Android 4.4.2 和 6.0.1 上看到过这种行为。

于 2017-10-05T11:42:16.727 回答
0

发送广播将不起作用。使用 ContentResolver 更新 MediaStore

删除(android.net.Uri,ava.lang.String,ava.lang.String)

更新(android.net.Uri,android.content.ContentValues,java.lang.String,java.lang.String)

于 2016-04-26T09:54:48.733 回答