栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

发现了阿里云 APP 的一个小 BUG

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

发现了阿里云 APP 的一个小 BUG

由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。

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

  • 手机系统:EMUI 8.0.0

  • 阿里云 APP:V4.11.0

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

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

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

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

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

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

一,自己写方法。

二,调用系统提供的插入图库的方法保存图片。

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

  • 重新扫描整个存储空间,将数据库更新。扫描整个 sd 卡的广播,如果 sd 卡里面东西多会扫描很久,用户体验差。

  • 将新的数据加到数据库。此操作对数据的安全性要求很高。

  • 直接扫描新添加的文件(或者是该文件所在的文件夹)。


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

  • 通过操作 MediaStore 类。

  • 发送广播更新 MediaStore。

  • 通过操作 MediaScannerConnection 类。


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

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧


本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号