<使用权限>

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

如需控制过滤,务必在 <uses-feature> 元素中显式声明硬件功能,而不是依赖 Google Play“发现” <uses-permission> 元素中的要求。然后,如果要对特定功能停用过滤,可将 android:required="false" 属性添加到 <uses-feature> 声明中。

如需暗示硬件功能的权限列表,请参阅 <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
另请参阅: