在 Android Q 中访问 Mediastore 图像时,我应该要求读取或写入权限?

问题描述 投票:0回答:1

我最近更新了我的应用程序到Target API 29 (Android Q)。这是一个拍照应用,可以拍摄图片并将图片存储在图库中。我得到 WRITE_EXTERNAL_STORAGE 通过'getExternalStoragePublicDirectory'的权限在主外部存储中创建文件夹并从图库中读取图片。由于上述方法已被淘汰,Google推荐了三个选项,我选择了Mediastore。

参考文献 https:/developer.android.comreferenceandroidosEnvironment#getExternalStoragePublicDirectory(java.lang.String)

由于我们不需要写权限来存储图片了,所以我在拍照时不再要求用户有写权限。但是要读取图片,我们需要权限。根据这个表格,谷歌建议获得以下两种权限 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE.

参考文献: https:/developer.android.comtrainingdata-storage。

还说 "其他应用要访问你的文件,虽然其他应用需要READ_EXTERNAL_STORAGE权限"

而在安卓文档中的这个建议。https:/developer.android.comtrainingdata-storageshareddocuments-files。

"如果你的应用程序使用媒体商店,但是,你必须请求READ_EXTERNAL_STORAGE权限来访问其他应用程序的媒体文件。"

我用我现有的 WRITE_EXTERNAL_STORAGE 权限,我能够从图库中读取图片。但从上面的建议来看,我觉得我还是应该去选择 READ_EXTERNAL_STORAGE 可以提供更精细的权限控制。

哪个更合适?

android-permissions mediastore android-10.0 scoped-storage
1个回答
0
投票

Android更新了他们的文档,在访问图像时只使用读取外部存储。这里是参考 https:/developer.android.comtrainingdata-storageuse-cases。

Use Read external Storage

© www.soinside.com 2019 - 2024. All rights reserved.