通知图像ContentProvider有关外部存储上的新文件

时间:2017-07-26 13:55:42

标签: java android

我应该如何通知图片内容提供商,我刚刚在图片目录中保存了一个文件?我期待例如类似图库的应用程序可以查看我的新文件。

Uri uri = Uri.fromFile(file);
getContext().getContentResolver().notifyChange(uri, null);
我找到某处(Vogella?)似乎没有用。或者从一开始就是一种错误的做法?

1 个答案:

答案 0 :(得分:2)

图像通知在图像插入媒体数据库后完成。这通常由android系统媒体扫描程序在找到图像时完成。

您可以编写自己的代码将图像插入媒体数据库,然后调用getContext().getContentResolver().notifyChange(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null);通知某些图像已经更改,而不会特别夸大哪个图像。

如果您修改了媒体数据库中已有的图像,则必须将文件uri转换为内容:uri。 getContext().getContentResolver().notifyChange(imageContentUri, null);

如果您正在为android-4.4或更高版本实施您可以要求媒体扫描程序(重新)分析您的文件。有关详细信息,请参阅How to trigger MediaScan on Nexus 7?。在android-4.4之前,这可能无法按预期工作(即在我的android-4.2上启动完全重新扫描)