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