原本使用MediaStore.Images.Media.insertImage来进行插入,虽然能正常通知相册更新,但是部分机型会显示两张同样的图片,一张是我们自己存的一张是insertImage生成的放置于Pictures文件夹底下,这显然不符合我们的需要,于是通过insertImage找到所使用的通知功能如下:
//kotlin
val values = ContentValues()
values.put(MediaStore.Images.Media.DATA, file?.absolutePath)
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")
contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)
//java
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA,file.getAbsolutePath());
values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg");
context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
如果担心无法正确刷新可加上:
sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)))