<使用权限>
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
注意:在某些情况下,您通过 <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
- 另请参阅:
-
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-27。
[null,null,["最后更新时间 (UTC):2025-07-27。"],[],[],null,["# <uses-permission\u003e\n\n**Note:** In some cases, the permissions that you request\nthrough `\u003cuses-permission\u003e` can affect how Google Play filters your\napplication. If you request a hardware-related permission, such as\n`CAMERA`, Google Play assumes that your\napplication requires the underlying hardware feature and filters the application\nfrom devices that don't offer it.\n\nTo control filtering, always explicitly declare\nhardware features in `\u003cuses-feature\u003e` elements, rather than\nrelying on Google Play to \"discover\" the requirements in\n`\u003cuses-permission\u003e` elements. Then, if you want to disable\nfiltering for a particular feature, you can add a\n`android:required=\"false\"` attribute to the\n`\u003cuses-feature\u003e` declaration.\n\nFor a list of permissions that imply\nhardware features, see the documentation for the [`\u003cuses-feature\u003e`](/guide/topics/manifest/uses-feature-element#permissions-features) element.\n\nsyntax:\n:\n\n ```xml\n \u003cuses-permission android:name=\"string\"\n android:maxSdkVersion=\"integer\" /\u003e\n ```\n\ncontained in:\n: [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element)\n\ndescription:\n\n: Specifies a system permission that the user must grant for the app to operate correctly. The user grants permissions when the application installs, on devices running Android 5.1 and lower, or while the app runs, on devices running Android 6.0 and higher.\u003cbr /\u003e\n\n\n For more information on permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview and the\n [Permissions on Android](/guide/topics/permissions) guide.\n A list of permissions defined by the base platform is at\n [android.Manifest.permission](/reference/android/Manifest.permission).\n\nattributes:\n:\n\n `android:name`\n : The name of the permission. It can be a permission defined by the\n application with the [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n element, a permission defined by another application, or one of the\n standard system permissions, such as\n [\"android.permission.CAMERA\"](/reference/android/Manifest.permission#CAMERA)\n or [\"android.permission.READ_CONTACTS\"](/reference/android/Manifest.permission#READ_CONTACTS). As these examples show,\n a permission name typically includes the package name as a prefix.\n\n `android:maxSdkVersion`\n\n : The highest API level at which this permission is granted to your app. Setting this attribute is useful if the permission your app requires is no longer needed beginning at a certain API level.\u003cbr /\u003e\n\n For example, beginning with Android 4.4 (API level 19) it's no longer necessary for your app\n to request the [WRITE_EXTERNAL_STORAGE](/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE)\n permission to write to its own application-specific directories on external storage, which are\n provided by [getExternalFilesDir()](/reference/android/content/Context#getExternalFilesDir(java.lang.String)).\n\n However,\n the permission *is required* for API level 18 and lower. So you can declare that this\n permission is needed only up to API level 18 with a declaration like the following: \n\n ```xml\n \u003cuses-permission\n android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\n android:maxSdkVersion=\"18\" /\u003e\n ```\n\n This way, beginning with API level 19, the system no longer grants your app the\n `WRITE_EXTERNAL_STORAGE` permission.\n\n Added in API level 19.\n\nintroduced in:\n: API level 1\n\nsee also:\n:\n - [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n - [`\u003cuses-permission-sdk-23\u003e`](/guide/topics/manifest/uses-permission-sdk-23-element)\n - [\u003cuses-feature\u003e](/guide/topics/manifest/uses-feature-element)"]]