android 相册实时更新

来源:互联网 发布:百度世界大会 知乎 编辑:程序博客网 时间:2024/05/05 13:15

最近做了一个项目,需求是将用户的微信号与客户的微信公众平台做一个绑定(其实就是用户关注客户的微信公众平台)。具体实现为在我们的app中生产一个客户的二维码图片,然后保存到手机的默认相册中(/DCIM/Camera/)中,然后启动微信,用户可以在微信的二维码扫描中选择照片进行扫描并关注客户的微信公众微信号。可是在扫描的过程中出现了问题:图片已经成功保存到默认路径中,可是在打开微信选择照片时却无法找到新加的图片抓狂。我使用的是小米2a作为测试机,刚开始以为是缓存的原因,可是清掉缓存还是不行,最后重启机器发现图片出现了,可是我需要的是实时显示图片,如果用户每次都需要重启机器,那也太扯蛋了。。。

于是只有问度娘了。。。

最后找出问题所在:android只会在每次启动的时候扫描相册,并将扫描到的信息存储在数据库。然后相册将直接调用数据库中的数据,所以当新的图片存到相册后,并没有将数据写入到数据库,所以在微信扫描里面自然就找不到这张图片了,所以解决的办法就是更新这个数据库。如何更新数据库呢?解决办法无非就是

1.重新扫描整个存储空间,将数据库更新,但是这样代价太大;

2.将新的数据加到数据库,这样操作对数据的安全性要求很高,所以还是不推荐;

3.直接扫描新添加的文件(当然也可以是该文件所在的文件夹)。

最后我使用了第三种方式解决了问题:代码如下


<span style="font-family:SimSun;font-size:18px;"><strong>        Uri uri = Uri.parse("file://"+Environment.getExternalStorageDirectory() + File.separator + </strong></span>
<span style="font-family:SimSun;font-size:18px;"><strong><span style="white-space:pre"></span>Environment.DIRECTORY_DCIM++"/Camera/"+(文件名称,带后缀));          Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);        sendBroadcast(intent); </strong></span>

将这段代码加到保存图片之后。

0 0
原创粉丝点击