android 权限说明

1. 权限的定义语法

注:
任何应用都可以定义权限
<permission 标签是定义权限
<uses-permission 标签是使用权限。

<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
  • android:description :权限的说明,比标签更长,信息更丰富。
  • android:icon : 对表示权限的图标的引用。
  • android:label : 权限的名称。
  • android:name: 用于在代码中引用权限的名称。
<uses-permission>
  • android:permissionGroup : 将此权限分配给一个组。
  • android:protectionLevel : 说明权限中隐含的潜在风险,并指示系统在确定是否将权限授予请求授权的应用时要遵循的流程。
    每个保护级别都包含基本权限类型以及零个或多个标志。例如,“dangerous” 保护级别没有标志。相反,保护级别 “signature|privileged” 是 “signature” 基本权限类型和 “privileged” 标志的组合。
含义
“normal”系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可
“dangerous”系统可能不会自动向请求授权的应用授予此类权限,需要应用主动向用户请求
“signature”只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,系统会在不通知用户或征得用户明确许可的情况下自动授予权限。
注:如果是系统定义的权限,则需要使用此权限的应用是平台签名。
如果是应用定义的权限,则需要使用此权限的应用和定义权限的签名相同。
“knownSigner”只有在请求授权的应用使用允许使用的证书进行签名时系统才会授予的权限。如果请求者的证书已列出,系统会在不通知用户或征得用户明确许可的情况下自动授予权限。
“signatureOrSystem”
“signature|privileged”
系统仅向位于 Android 系统映像的专用文件夹中的应用或使用与声明权限的应用相同的证书进行签名的应用授予的权限。
注:privileged 意味着应用位于 priv-app/ 目录下

系统权限定义的位置

源码位置:frameworks/base/core/res/AndroidManifest.xml
设备上包的位置:system/framework/framework-res.apk
android.permission.CAMERA 权限定义示例:

    <permission android:name="android.permission.CAMERA"
        android:permissionGroup="android.permission-group.UNDEFINED"
        android:label="@string/permlab_camera"
        android:description="@string/permdesc_camera"
        android:backgroundPermission="android.permission.BACKGROUND_CAMERA"
        android:protectionLevel="dangerous|instant" />

参考地址:

系统开发,权限说明文档。
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/permission/Permissions.md
应用权限开发文档
https://developer.android.google.cn/guide/topics/permissions/overview?hl=zh-cn
权限列表:
https://developer.android.google.cn/reference/android/Manifest.permission?hl=en#ACCESS_NETWORK_STATE
定义格式:
https://developer.android.com/guide/topics/manifest/permission-element?hl=zh-cn

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值