注意:在某些情况下,您通过 <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
- 另请参阅: