AndroidManifest.xml 中 Uses-Permission 和 Permissions 标签的区别

作者:编程家 分类: android 时间:2025-10-25

AndroidManifest.xml 是 Android 开发中的一个重要文件,它用于描述应用程序的各种信息,包括应用程序的组件、权限要求等。其中,Uses-Permission 和 Permissions 标签是用来声明应用程序所需的权限的两种不同方式。本文将围绕这两个标签展开,分析它们的区别,并通过实例代码来说明它们的用法。

Uses-Permission 标签

Uses-Permission 标签用于在 AndroidManifest.xml 文件中声明应用程序所需的权限。它的作用是告诉系统,应用程序需要获取指定的权限才能正常运行。这些权限可以是系统定义的,也可以是开发者自定义的。

例如,如果我们的应用程序需要访问设备的摄像头,就需要在 AndroidManifest.xml 文件中添加如下的 Uses-Permission 标签:

xml

这样,当用户安装应用程序时,系统会提示用户授予相机访问权限。只有在用户同意授权之后,应用程序才能正常使用相机功能。

需要注意的是,Uses-Permission 标签必须放在应用程序的根元素 下,但可以放在任何位置。此外,它可以多次使用,以声明应用程序需要的多个权限。

Permissions 标签

Permissions 标签也是用来声明应用程序所需的权限,但与 Uses-Permission 不同的是,Permissions 标签是通过 元素进行声明的。通常情况下,Permissions 标签用于自定义权限的声明。

例如,我们可以在 AndroidManifest.xml 文件中添加如下的 Permissions 标签来声明一个自定义权限:

xml

android:name="com.example.myapp.permission.MY_PERMISSION"

android:label="My Custom Permission"

android:description="This is a custom permission for my app"

android:protectionLevel="dangerous" />

这样,我们就声明了一个名为 "com.example.myapp.permission.MY_PERMISSION" 的自定义权限。在应用程序中,我们可以使用这个权限来控制某些敏感操作的访问权限。

与 Uses-Permission 不同的是,Permissions 标签通常是在其他组件(如 Activity、Service 等)的声明中使用。我们可以通过在组件的声明中添加如下代码来指定该组件需要使用某个权限:

xml

这样,只有在用户授予了 "com.example.myapp.permission.MY_PERMISSION" 权限之后,才能正常使用该组件。

案例代码

以下是一个示例代码,演示了如何在 AndroidManifest.xml 文件中使用 Uses-Permission 和 Permissions 标签:

xml

package="com.example.myapp">

android:name="com.example.myapp.permission.MY_PERMISSION"

android:label="My Custom Permission"

android:description="This is a custom permission for my app"

android:protectionLevel="dangerous" />

...>

...

在上述代码中,我们声明了应用程序需要相机访问权限,并且自定义了一个名为 "com.example.myapp.permission.MY_PERMISSION" 的权限。

通过本文的介绍,我们了解到了 AndroidManifest.xml 文件中的 Uses-Permission 和 Permissions 标签的区别。Uses-Permission 标签用于声明应用程序所需的权限,而 Permissions 标签则用于自定义权限的声明。使用这两个标签,我们可以在应用程序中使用系统定义的权限,也可以创建自定义的权限,以实现更精细的权限控制。