最近在做运动手环项目,有一个功能要实现保存二维码,用户在微信扫一扫直接扫描二维码。其实功能很简单,就是保存文件到本地。
保存图片到本地代码我就不写了,关键是保存到本地图片,也要加入在系统相册,并且要在微信扫一扫立马能找到,所以图片保存以后一定要刷新系统相册,网上有很多参考,给个链接http://blog.csdn.net/a751608624/article/details/50728336
MediaStore.Images.Media.insertImage(getContentResolver(), "image path", "title", "description");//插入图库
String path = SAVE_REAL_PATH + fileName;
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse(path)));//更新图库
其实以上代码确实能实现保存图片到本地,并且能刷新相册图库,用户打开手机相册能看到保存的的图片。
但是我的项目是保存二维码,用户打开微信去扫一扫,打开扫一扫的时候,微信会打开本地图片,但是刚刚保存的二维码图片不在最前面,只有选择所有图片,在其他目录才能发现刚才保存的二维码,这对于用户无疑体验很不好的。于是百度找解决方案,有网友说保存图片带上当前时间即可,相册图片可以根据时间排名,于是测试不。
后来发现通过调用MediaStore插入图片可以解决此问题,这样实现每次保存的图片,在微信打开扫一扫时,图片都在第一个,这样对于用户体验就很好了。以下贴出代码
String dirName = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
+ File.separator +