我使用以下代码将图像存储在媒体存储中(以便启用共享):
public static Uri storeInMediaStore(Context context, Bitmap bitmap, String title) {
ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, title);
values.put(Images.Media.BUCKET_ID, "xxx");
values.put(Images.Media.DESCRIPTION, "Shared via xxx");
values.put(Images.Media.MIME_TYPE, "image/jpeg");
Uri uri = context.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
OutputStream outstream;
try {
outstream = context.getContentResolver().openOutputStream(uri);
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, outstream);
outstream.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
return uri;
}
我在StackOverflow中找到的。这段代码完美无缺,但问题是,每次用户点击分享按钮时,我都会存储一个多余的新图像。
我需要做的是检查具有此标题和说明的图像是否已经存在(标题是应用名称,文件名和日期的组合,并且每个图像是唯一的),如果是这样,只需返回现有的URI和如果没有,创建,保存然后返回新的Uri(上面的代码正在做)。
之前是否有人这样做过或知道如何按标题和说明查询媒体商店?
非常感谢,