存储相关 存储权限申请

Android 10 中的隐私权变更

外部存储访问权限范围限定为应用文件和媒体

默认情况下,对于以 Android 10 及更高版本为目标平台的应用,其访问权限范围限定为外部存储,即分区存储。此类应用可以查看外部存储设备内以下类型的文件,无需请求任何与存储相关的用户权限:

特定于应用的目录中的文件(使用 getExternalFilesDir() 访问)。
应用创建的照片、视频和音频片段(通过媒体库访问)。
要详细了解分区存储以及如何共享、访问和修改在外部存储设备上保存的文件,请参阅有关如何管理外部存储设备中的文件以及如何访问和修改媒体文件的指南。

对外部存储空间的访问和所需权限

Android 定义了以下与存储相关的权限:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE 和 MANAGE_EXTERNAL_STORAGE。

在较低版本的 Android 系统中,应用需要声明 READ_EXTERNAL_STORAGE 权限才能访问位于外部存储空间中应用专属目录之外的任何文件。此外,应用需要声明 WRITE_EXTERNAL_STORAGE 权限才能向应用专属目录以外的任何文件写入数据。

Android 系统的版本越新,就越依赖于文件的用途而不是位置来确定应用对特定文件的访问和写入能力。特别是,如果您的应用以 Android 11(API 级别 30)或更高版本为目标平台,WRITE_EXTERNAL_STORAGE 权限完全不会影响应用对存储的访问权限。这种基于用途的存储模型可增强用户隐私保护,因为应用只能访问其在设备文件系统中实际使用的区域。

Android 11 引入了 MANAGE_EXTERNAL_STORAGE 权限,该权限提供对应用专属目录和 MediaStore 之外文件的写入权限。如需详细了解此权限,以及为何大多数应用无需声明此权限即可实现其用例,请参阅有关如何管理存储设备上所有文件的指南。

其他相关说明

Android 定义了以下与存储相关的权限:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE 和 MANAGE_EXTERNAL_STORAGE。

在较低版本的 Android 系统中,应用需要声明 READ_EXTERNAL_STORAGE 权限才能访问位于外部存储空间中应用专属目录之外的任何文件。此外,应用需要声明 WRITE_EXTERNAL_STORAGE 权限才能向应用专属目录以外的任何文件写入数据。

Android 系统的版本越新,就越依赖于文件的用途而不是位置来确定应用对特定文件的访问和写入能力。特别是,如果您的应用以 Android 11(API 级别 30)或更高版本为目标平台,WRITE_EXTERNAL_STORAGE 权限完全不会影响应用对存储的访问权限。这种基于用途的存储模型可增强用户隐私保护,因为应用只能访问其在设备文件系统中实际使用的区域。

Android 11 引入了 MANAGE_EXTERNAL_STORAGE 权限,该权限提供对应用专属目录和 MediaStore 之外文件的写入权限。如需详细了解此权限,以及为何大多数应用无需声明此权限即可实现其用例,请参阅有关如何管理存储设备上所有文件的指南。

scoped-storage

https://developer.android.com/training/data-storage?hl=zh-cn#scoped-storage

管理存储设备上的所有文件

猜你喜欢

转载自blog.csdn.net/qq_42015021/article/details/132469757