1

Android 11 引入了各种隐私更改,包括范围存储。这意味着在 Android 11 或更高版本上,该应用不再

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

但我仍然需要在 Android 10 或更低版本上维护该功能。是否可以根据 SDK 版本声明 Manifest 权限和属性?

4

1 回答 1

2

这里

<uses-permission android:name="string"
    android:maxSdkVersion="integer" />

android:maxSdkVersion

应向您的应用授予此权限的最高 API 级别。如果从某个 API 级别开始不再需要您的应用所需的权限,则设置此属性很有用。例如,从 Android 4.4(API 级别 19)开始,当您的应用想要写入外部存储上自己的应用特定目录(由 getExternalFilesDir() 提供的目录)时,您的应用不再需要请求 WRITE_EXTERNAL_STORAGE 权限. 但是,API 级别 18 及更低级别需要该权限。因此,您可以使用如下声明声明此权限仅在 API 级别 18 之前需要:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

所以你maxSdkVersion会是28(因为 Android 10/API 级别 29 或更高级别的应用程序不需要请求它)。您的问题提到了 Android 11,但阅读文档似乎允许从 Android 10 及更高版本开始。

于 2020-11-30T10:50:02.760 回答