android 相册实时更新

最近做了一个项目,需求是将用户的微信号与客户的微信公众平台做一个绑定(其实就是用户关注客户的微信公众平台)。具体实现为在我们的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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值