前几天在华为手机上使用阿里云 APP,从 oss bucket 中下载了一张图片,想要通过微信把它发给一个朋友时,发现在打开微信选择照片时却无法找到新下载的图片。同样在打开的 Android 系统相册中也完全找不到这个照片,虽然这个图片确确实实已经下载到了手机上。



后来谷歌了一下,最后找出问题所在:

Android 只会在每次启动的时候扫描系统相册,并将扫描到的信息存储在数据库(MediaStore)。然后系统相册将直接调用数据库中的数据,所以当新的图片存到相册后,并没有将数据写入到数据库,所以在微信扫描里面自然就找不到这张图片了,所以解决的办法就是更新这个数据库。


为了验证问题,我在手机的文件管理中找到了这张图片所在的目录,进去重新刷新该文件夹,然后打开系统相册,果然就可以看到这张下载的图片了。


后来,向阿里云反馈也的确证实了该问题:


虽然本人对 Android 开发完全不懂, 但也想了解一下,在 Android 手机中下载图片怎么样才能实时刷新系统相册呢?


首先,是在 Adnroid 中保存图片。这里面会涉及到是否能指定路径保存和名称,方法可能有如下两种:


其次,是更新系统图库。这里有三种策略:


关于在代码层面刷新系统 Media,网络上面主要几种方法:


当然或许会有更多的解决方法,小编作为一个 Adnroid 的小白,就不在这里啰嗦了。