API 级别的 Android 权限 READ_MEDIA_AUDIO 和 READ_EXTERNAL_STORAGE < 33

问题描述 投票:0回答:2

在API 33(Android 13)中,引入了粒度媒体权限,开发者必须请求这些粒度权限而不是

READ_EXTERNAL_STORAGE

READ_MEDIA_AUDIO
就是这样一种精细的权限。此权限仅存在于 API 级别 33+,所以我的问题是,我应该在 manifest 中请求哪个权限?

因为我的应用程序有

minSDK = 21
,我是否应该在清单中同时请求
READ_EXTERNAL_STORAGE
READ_MEDIA_AUDIO
。或者我应该只要求
READ_EXTERNAL_STORAGE
而这将涵盖
READ_MEDIA_AUDIO
? (当然,在运行时,我会根据设备的
SDK_INT
请求任何一个权限。)

android android-permissions android-external-storage
2个回答
4
投票

您应该将这两种权限都添加到您的清单中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>

READ_MEDIA_AUDIO
权限仅适用于 Android 13 或更高版本的设备。

然后,如你所写,你应该处理SDK的每一个case(这部分可能对其他开发者有帮助):


0
投票

除了建议的内容之外,如果您只是在学习并且不知道如何请求权限并且不想弄乱它,那么只需执行以下操作:

  1. 将这些行添加到 AndroidManifest:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
  1. 转到设置应用程序→选择您安装的应用程序→权限→并打开存储

P。 S. 这对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.