<uses-permission>

注意:在某些情况下,您通过 <uses-permission> 请求的权限可能会影响 Google Play 对应用的过滤方式。如果您请求硬件相关的权限,例如 CAMERA,Google Play 假设您的应用需要底层硬件功能,并将应用从不支持该功能的设备上过滤掉。

要控制过滤,请始终在 <uses-feature> 元素中明确声明硬件功能,而不是依赖 Google Play 在 <uses-permission> 元素中“发现”要求。然后,如果要禁用对特定功能的过滤,可以在 <uses-feature> 声明中添加 android:required="false" 属性。

有关暗示硬件功能的权限列表,请参阅 <uses-feature> 元素的文档。

语法
<uses-permission android:name="string"
        android:maxSdkVersion="integer" />
包含于
<manifest>
描述
指定应用正常运行所需的用户必须授予的系统权限。用户在应用安装时授予权限,在运行 Android 5.1 及更低版本的设备上,或在应用运行时授予权限,在运行 Android 6.0 及更高版本的设备上。

有关权限的更多信息,请参阅应用清单概述中的 权限 部分以及 Android 上的权限 指南。由基本平台定义的权限列表位于 android.Manifest.permission

属性
android:name
权限的名称。它可以是使用 <permission> 元素定义的应用权限、另一个应用定义的权限或标准系统权限之一,例如 "android.permission.CAMERA""android.permission.READ_CONTACTS"。如这些示例所示,权限名称通常包含包名作为前缀。
android:maxSdkVersion
您的应用被授予此权限的最高 API 级别。设置此属性在您的应用所需的权限从特定 API 级别开始不再需要时很有用。

例如,从 Android 4.4(API 级别 19)开始,您的应用不再需要请求 WRITE_EXTERNAL_STORAGE 权限来写入外部存储上的应用专用目录,这些目录由 getExternalFilesDir() 提供。

然而,对于 API 级别 18 及更低版本,**需要**此权限。因此,您可以使用以下声明来表明此权限仅在 API 级别 18 及更低版本时需要。

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

这样,从 API 级别 19 开始,系统将不再授予您的应用 WRITE_EXTERNAL_STORAGE 权限。

在 API 级别 19 中添加。

在以下版本中引入:
API 级别 1
另请参见