首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android13-如何请求WRITE_EXTERNAL_STORAGE

Android13-如何请求WRITE_EXTERNAL_STORAGE
EN

Stack Overflow用户
提问于 2022-09-06 10:52:03
回答 1查看 3.4K关注 0票数 16

我的Android应用程序目标版本是 Android13(API 33)。

WRITE_EXTERNAL_STORAGE权限在API 33 (即Android12和更低版本)下面似乎运行良好,但是在Android13上运行该应用程序时,不会出现WRITE_EXTERNAL_STORAGE的运行时权限弹出窗口。

我的Android应用程序在应用程序的私有存储中创建了一个密钥库文件。

Android 13的行为变化提到了这一点:

如果您的应用程序以Android 13为目标,则必须请求一个或多个新权限,而不是READ_EXTERNAL_STORAGE。

新的权限是:

  • 图片和照片: READ_MEDIA_IMAGES
  • 视频: READ_MEDIA_VIDEO音频
  • 音频文件: READ_MEDIA_AUDIO

我在官方文件中没有找到任何有关这方面的信息。文档只关注媒体文件,而不涉及其他文件类型。

https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 23:53:26

你不知道。

来自谷歌的正式文件

“如果你的应用程序的目标是安卓11,那么WRITE_EXTERNAL_STORAGE权限和WRITE_MEDIA_STORAGE特权权限都不再提供任何额外的访问。”

因此,实际上,如果您要在Android11或更高版本上请求WRITE_EXTERNAL_STORAGE,您将不会请求任何东西。这是Android向作用域存储迁移的全部目的,它有效地阻止应用程序读取或写入其他应用程序的存储目录,除非它们访问特定的文件类型(例如,使用您提到的权限),或者由Google自己授予特殊的文件管理器权限。想了解更多关于作用域存储的信息,请看这个写得很好的文章,但是TLDR安全性和应用程序卸载中遗留的文件是谷歌这么做的主要原因。

所以,如果你真的想写文件,要么确保你只写到你的应用程序的指定存储目录,在这种情况下,你根本不需要任何权限,或者如果你真的需要写到你的应用程序不拥有的目录,获得谷歌(如何获得许可)的文件管理器权限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73620790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档