我最近将我的应用更新为 Target API 29 (Android Q)。这是一个照片应用程序,可以拍照并将图像存储在图库中。我获得WRITE_EXTERNAL_STORAGE
了通过“getExternalStoragePublicDirectory”在主外部存储中创建文件夹并从图库中读取图像的权限。因为,上述方法已被弃用,谷歌推荐了三个选项,我选择了 Mediastore。
由于我们不再需要写权限来存储图像,所以我在拍照时不再向用户询问写权限。但是要阅读图像,我们需要许可。根据此表,Google 建议获取WRITE_EXTERNAL_STORAGE
或READ_EXTERNAL_STORAGE
。
参考:https ://developer.android.com/training/data-storage
它还说“让其他应用程序访问您的文件,尽管其他应用程序需要 READ_EXTERNAL_STORAGE 权限”
Android 文档中的此建议, https://developer.android.com/training/data-storage/shared/documents-files
“但是,如果您的应用使用媒体商店,则您必须请求 READ_EXTERNAL_STORAGE 权限才能访问其他应用的媒体文件。”</p>
我用我现有的WRITE_EXTERNAL_STORAGE
许可进行了测试,我能够从图库中读取图像。但是从上面的建议中,我觉得我应该去更好地READ_EXTERNAL_STORAGE
提供更精细的权限控制。
哪个更合适?