简体   繁体   English

Android 权限 READ_MEDIA_AUDIO 和 READ_EXTERNAL_STORAGE API 级别 < 33

[英]Android permission READ_MEDIA_AUDIO and READ_EXTERNAL_STORAGE for API level < 33

In API 33 (Android 13), granular media permissions have been introduced , and developers have to request these granular permissions instead of READ_EXTERNAL_STORAGE .在 API 33 (Android 13) 中, 引入了粒度媒体权限,开发者必须请求这些粒度权限,而不是READ_EXTERNAL_STORAGE

READ_MEDIA_AUDIO is one such granular permission. READ_MEDIA_AUDIO就是这样一种精细权限。 This permission exists only in API level 33+, so my question is, which permission should I request in the manifest ?此权限仅存在于 API 级别 33+,所以我的问题是,我应该在清单中请求哪个权限?

Since my app has minSDK = 21 , should I request both READ_EXTERNAL_STORAGE and READ_MEDIA_AUDIO in the manifest.由于我的应用程序有minSDK = 21 ,我是否应该在清单中同时请求READ_EXTERNAL_STORAGEREAD_MEDIA_AUDIO Or should I only request READ_EXTERNAL_STORAGE and that will cover READ_MEDIA_AUDIO ?或者我应该只请求READ_EXTERNAL_STORAGE并且这将涵盖READ_MEDIA_AUDIO (At runtime, of course, I will ask for either of the permission based on the SDK_INT of the device.) (当然,在运行时,我会根据设备的SDK_INT请求其中一个权限。)

You should add both permissions to your manifest您应该将这两种权限都添加到您的清单中

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

The READ_MEDIA_AUDIO permission will work only for devices with Android 13 or above. READ_MEDIA_AUDIO权限仅适用于 Android 13 或更高版本的设备。

Then, as you wrote, you should handle each case of the SDK (this section may be helpful for other developers):然后,正如您所写,您应该处理 SDK 的每个案例(本节可能对其他开发人员有所帮助):

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM