Target API 30 应用分区存储适配是否有效?

2023-11-10 01:52:10 +08:00
 J1ason
为何 TargetAPI 为 33 的应用依然能读取内部存储根目录的图片呢?

升级小红书到最新版本 8.12.1 ,授予访问照片和视频、访问音频两项权限,在应用内发送图片,能读取到内部存储/tieba/中的图片(百度贴吧拉的💩)。

查了官方文档,30 以上的应用,能读取到这种位置只有使用 SAF 或者 MANAGE_EXTERNAL_STORAGE 才行,但是我在使用小红书的过程中并没有 SAF 的弹窗,且使用 LibChecker 查看包内并没有 MANAGE_EXTERNAL_STORAGE 相关的权限,这是怎么回事?有没有安卓开发解答一下

众多国产应用商店要求年底前上传应用必须是 30 以上版本,还以为能解决安卓应用存储空间混乱的问题,没想到用了几个适配的应用之后,依然能随便乱读
8226 次点击
所在节点    Android
9 条回复
psklf
2023-11-10 09:22:33 +08:00
奇怪,保持关注
Ga2en
2023-11-10 09:23:47 +08:00
你是不是小红书先请求了文件权限然后再请求了分区权限。
Ga2en
2023-11-10 09:24:05 +08:00
某些厂魔改过。。。。
devcai
2023-11-10 10:30:34 +08:00
系统会扫描手机里面的图片、视频,保存到数据库中,app 能读取数据库内容的,通过 uri 再读取图片内容,其中的核心是走系统管理的,不是到其他 app 目录下去扫描文件的。
你想想,假如你用小红书保存一张图片,想发送给微信好友,如果不让微信读不乱套了吗。
alan2v2
2023-11-10 10:51:45 +08:00
授予了相册权限之后,对于手机内所有的照片( MediaStore )都是可读的,
对于 /Pictures , /DCIM , /Download 类似目录可写,或授权后可写,对于其他目录禁止写入
J1ason
2023-11-10 13:40:05 +08:00
@alan2v2 你这个解释似乎比较清楚,也就是说,MediaStore 会扫描全部位置的图片并提供访问,但除了/Pictures , /DCIM , /Download 等位置,并不能读和写
J1ason
2023-11-10 15:46:55 +08:00
@alan2v2 但是我看 MediaStore 相关文档并没有提到会扫描其他目录,https://developer.android.com/training/data-storage/shared/media?hl=zh-cn
“系统会自动扫描外部存储卷,并将媒体文件添加到以下明确定义的集合中:
图片(包括照片和屏幕截图),存储在 DCIM/ 和 Pictures/ 目录中。系统将这些文件添加到 MediaStore.Images 表格中。”
jeesk
2023-11-16 13:29:15 +08:00
授予访问照片和视频、访问音频两项权限。 不就是能够读取所有的 照片和视频吗? 哪有问题了?
jeesk
2023-11-16 13:30:57 +08:00
不乱读必须使用系统的文件选择器或者图片选择器, 这一点 ios 和安卓并没有区别。 只是安卓没有适配而已。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/990467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX