AndroidManifest.xml uses-permission
时间: 2025-04-05 12:17:38 浏览: 41
### 正确配置 `uses-permission` 标签的方法
在 Android 应用开发中,`<uses-permission>` 是用于声明应用所需权限的关键标签。它告诉操作系统该应用程序需要哪些功能访问权,例如网络、存储或其他敏感操作。
#### 添加 `<uses-permission>` 到 `AndroidManifest.xml`
要在 `AndroidManifest.xml` 文件中添加权限,需将其放置在根节点 `<manifest>` 下方,但在任何其他子节点(如 `<application>`, `<activity>`, 或 `<receiver>`)之前[^3]。以下是标准语法:
```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<!-- 声明所需的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application>
...
</application>
</manifest>
```
上述代码片段展示了如何请求互联网访问和外部存储读取权限[^5]。
#### 使用带有条件的权限
某些情况下可能希望基于设备 API 版本有条件地申请权限。这可以通过设置属性 `maxSdkVersion` 实现。例如,对于旧版本 Android 设备可以单独指定特定权限的最大支持 SDK 级别:
```xml
<!-- 对于低于等于API Level 18的设备启用写入外存权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
```
注意,同一权限不可重复定义不同 `maxSdkVersion` 属性值的情况,因为这是非法配置。
#### 权限的作用范围
当自定义权限被创建并应用于广播接收器时,只有拥有相应权限的应用才能向此广播发送消息。例如,在以下 XML 配置中,`INSTALL_SHORTCUT` 自定义权限确保仅具有该权限的应用程序能够触发安装快捷方式的行为[^2]:
```xml
<receiver android:name="com.android.launcher2.InstallShortcutReceiver"
android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
<intent-filter>
<action android:name="com.android.launcher.action.INSTALL_SHORTCUT"/>
</intent-filter>
</receiver>
```
这里需要注意的是,`android:permission` 属性指定了哪个权限控制对该组件的访问,而 `<uses-permission>` 节点则表示当前应用本身需要什么权限去执行某些动作。
#### 动态权限管理
除了静态声明之外,针对运行时危险权限 (Dangerous Permissions),还需要通过 Java/Kotlin 编程实现动态授权机制。比如访问联系人列表或相机等功能均属于此类范畴。如果目标用户的 Android OS 处于 Marshmallow(API level 23) 及以上,则即使清单文件里已声明对应许可项仍需额外确认用户同意授予实际使用权。
---
###
阅读全文
相关推荐

















