Android 13 -读取外部存储权限仍然可用

nc1teljy  于 2022-11-20  发布在  Android
关注(0)|答案(1)|浏览(10595)

Android 13的行为更改提到了这一点:
如果您的应用面向Android 13,您必须请求一个或多个新权限,而不是READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限。
(开发人员)
新权限包括:

  • 图片和照片:读取介质图像
  • 视频:READ_MEDIA_VIDEO音频
  • 音频文件:读取媒体音频

但是,如果我需要从任意文件夹读取PDF文件,该如何处理呢?没有READ_MEDIA_DOCUMENT或类似的权限。那么其他类型的文件呢?不是图像、视频或音频的文件呢?我还可以为它们使用READ_EXTERNAL_STORAGE权限吗?
我在官方文档中没有找到任何相关信息,但老实说,文档只关注媒体文件,没有任何关于其他文件类型的信息(https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions)。
我也不确定除了视频、图像和音频之外的其他文档类型的WRITE_EXTERNAL_STORAGE权限。

bwntbbo3

bwntbbo31#

根据相关文档():
在运行Android 10或更高版本的设备上,您无需任何存储相关权限即可访问和修改应用拥有的媒体文件,包括Media Store中的文件。下载收藏。例如,如果您正在开发相机应用,您无需请求与存储相关的权限,因为您的应用拥有您写入媒体商店的图像。
从android 10你可以不问权限从存储获取文件。完美的作品与各种文件(pdf,excel...)在我的应用程序上的android 13没有任何权限。所以你只需要问READ_EXTERNAL_STORAGE权限的SDK,少于android 10。
但是,如果您需要特殊文件(例如,由Instagram应用程序创建,但不存储在通常的存储),您应该从您的列表中请求许可。
还应查找媒体存储的类型:https://developer.android.com/reference/android/provider/MediaStore
大约WRITE_EXTERNAL_STORAGE-因为sdkVersion=29,所以您不需要它
编辑:正在重写我的应用程序,并希望添加一些东西:
这取决于你的应用需要做什么,但我已经从我的应用中删除了所有类型的存储权限(只有WRITE_EXTERNAL_STORAGE留给SDK少于29),只使用ACTION_OPEN_DOCUMENT,ACTION_OPEN_DOCUMENT_TREE访问所有类型的文件(但不访问系统文件夹,ACTION_OPEN_DOCUMENT_TREE也没有访问下载文件夹)。

相关问题