Chr*_*her 73 android android-permissions android-13
Android 13 的行为更改提到了这一点:
如果您的应用面向 Android 13,则必须请求一项或多项新权限,而不是 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。
(https://developer.android.com/about/versions/13/behavior-changes-13#capsular-media-permissions)
新的权限是:
但是,如果我需要从任意文件夹读取 PDF 文件,该如何处理?没有像 READ_MEDIA_DOCUMENT 之类的权限。那么除图像、视频或音频之外的其他文件类型呢?我仍然可以对它们使用 READ_EXTERNAL_STORAGE 权限吗?
我在官方文档中没有找到有关此内容的任何信息,但说实话,该文档仅关注媒体文件,没有任何有关其他文件类型的信息(https://developer.android.com/about/versions/13/行为更改13#细粒度媒体权限)。
我也不确定除视频、图像和音频之外的其他文档类型的 WRITE_EXTERNAL_STORAGE 权限。
小智 50
根据文档(https://developer.android.com/training/data-storage/shared/media#storage-permission):
如果您仅访问自己的媒体文件,则无需任何权限在运行 Android 10 或更高版本的设备上,您不需要任何与存储相关的权限即可访问和修改应用拥有的媒体文件(包括媒体存储中的文件)。下载收藏。例如,如果您正在开发相机应用程序,则无需请求与存储相关的权限,因为您的应用程序拥有您正在写入媒体存储的图像。
从 Android 10 开始,您不能请求权限来从存储中获取文件。无需任何权限,即可与 Android 13 上我的应用程序上的各种文件(pdf、excel...)完美配合。所以你只需要请求READ_EXTERNAL_STORAGESDK的许可,低于android 10。
但如果您需要特殊文件(例如由 Instagram 应用程序创建但未存储在常用存储中的文件),您应该向您的列表请求许可。
另请查找媒体存储类型: https://developer.android.com/reference/android/provider/MediaStore
关于WRITE_EXTERNAL_STORAGE- 你不需要它,因为 sdkVersion=29
编辑:正在重写我的应用程序并想添加一些内容:
这取决于你的应用程序需要做什么,但我已经WRITE_EXTERNAL_STORAGE从我的应用程序中删除了所有类型的存储权限(仅保留小于29的SDK),并且仅使用ACTION_OPEN_DOCUMENT,ACTION_OPEN_DOCUMENT_TREE即可访问所有类型的文件(但不适用于系统)文件夹,ACTION_OPEN_DOCUMENT_TREE也无权访问下载文件夹)。
nav*_*med 14
On Android 13 the READ_EXTERNAL_STORAGE has been replaced by READ_MEDIA_IMAGES and READ_MEDIA_VIDEO
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106681 次 |
| 最近记录: |