首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MANAGE_EXTERNAL_STORAGE对WRITE_EXTERNAL_STORAGE

MANAGE_EXTERNAL_STORAGE对WRITE_EXTERNAL_STORAGE
EN

Stack Overflow用户
提问于 2022-09-30 13:18:45
回答 1查看 231关注 0票数 2

最近,我不得不实现一个功能来保存下载文件夹中的本地文件。这个挑战伴随着一些我还没有找到答案的问题。

MANAGE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE的区别是什么?

以下是google for MANAGE_EXTERNAL_STORAGE的描述

Google限制高风险或敏感权限的使用,包括一种名为“所有文件访问”的特殊应用程序访问。这仅适用于针对Android11 (API级别30)并声明MANAGE_EXTERNAL_STORAGE权限的应用程序.

WRITE_EXTERNAL_STORAGE的定义

允许应用程序向外部存储写入。从API级别19开始,在特定于应用程序的目录中读取/写入文件不需要此权限.

那么,有什么区别呢?我应该什么时候使用每一个?为什么Google需要3个权限来处理外部存储?我应该要求在下载文件夹中保存一个文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-03 13:03:13

MANAGE_EXTERNAL_STORAGE

  • 是用于Android 11和更高版本的
  • ,它允许几乎完全访问SDK所指的外部存储系统
  • ,这将导致应用程序被禁止在Play Store (或者其他地方)上发布,除非您可以向Google证明该权限是必要的,这是非常困难的

WRITE_EXTERNAL_STORAGE

  • 适用于Android 9和更低版本的Android
  • 的所有当前版本(以及带有android:requestLegacyExternalStorage="true"的Android 10 ),允许在Android 11+上对SDK所称的所有外部存储
  • 进行写访问,允许对少数公共
  • 的写入访问,而不需要Google的许可才能用于Play Store

上的应用程序。

为什么谷歌需要3个权限来处理外部存储?

因为随着时间的推移一切都变了。被认为适合于Android2.x (WRITE_EXTERNAL_STORAGE对外部存储具有完全的写访问权限)的方法存在问题。

我应该要求在下载文件夹上保存一个文件吗?

最有可能的是,答案是“不要写信给Downloads/”。请记住,对于应用程序没有创建的文件,您不能在Android 11+上读取对这些文件的访问。这意味着,如果您尝试在那里写入一个文件,并且已经有一个文件名是由其他东西创建的,那么您就会出现错误--您没有能力覆盖其他应用程序创建的文件。

通常,更好的答案是使用ACTION_CREATE_DOCUMENT / ActivityResultContracts.CreateDocument,并允许用户告诉您在用户的本地存储或云存储中,用户希望将这些内容放在哪里。

但是,如果您坚持使用Downloads/,那么WRITE_EXTERNAL_STORAGE就足够了。

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

https://stackoverflow.com/questions/73909410

复制
相关文章

相似问题

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