近期遇到了一个适配问题,保存图片或者是视频之后立即在相册显示,方便用户做下一步的操作这样一个功能, 描述一下过程中的问题和最后采用的解决方案吧
普通广播通知手机刷新方式
要想将图片保存到相册中并且立即显示, 查询到的博客和文档是发送广播通知手机刷新:
差不多是这样的代码:
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse(path)));
还有的会将图片信息插入数据库, 差不多这样的代码:
ContentValues values = new ContentValues(4);
values.put(MediaStore.Video.Media.TITLE, "");
values.put(MediaStore.Video.Media.MIME_TYPE, minetype);
values.put(MediaStore.Video.Media.DATA, path);
values.put(MediaStore.Video.Media.DURATION, duration_int);
context.getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
以上代码我也是在每个手机上尝试, 但是还是有个别手机不通过, 图片并不会立即显示到相册,比如魅蓝 e, oppo a357, vivo y66 , 这个时候我在想, 是否有统一方式? 此时我想到了最屌p图工具美图秀秀, 它是怎么存储的呢, 在经过每个手机下载美图秀秀保存图片查看之后, 我发现美图秀秀把图片存在了这样一个文件夹: 手机存储/DCIM/Camera
这确实是大部分手机相册存储的位置,把图片存储到这里然后执行上面的插入数据库, 然后广播通知刷新是可以适配大部分手机的

解决Android设备间保存图片或视频到相册后不立即显示的问题,涉及到不同机型的相册路径差异和广播通知刷新策略。最终方案是将内容保存到/DCIM/Camera目录并更新数据库,确保大部分机型能立即看到。
最低0.47元/天 解锁文章
5320





