当前位置: 首页 > article >正文

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


http://www.kler.cn/a/301195.html

相关文章:

  • 大学作业参考:网页设计作业 - 工作计划-Java SQL HTML源码下载
  • VSCode+ESP-IDF开发ESP32-S3-DevKitC-1(2)第一个工程 LED心跳灯
  • 【后端】版本控制
  • 【git】git取消提交的内容,恢复到暂存区
  • MyBatis-Plus中使用JSON 类型字段
  • 通过 Docker 对 MySQL 做主从复制的时候,因为ip不对导致不能同步。后又因为二进制的偏移量写的不对,导致不能同步的问题
  • Parasoft如何助力AUTOSAR C++合规测试
  • 力扣322-零钱兑换(Java详细题解)
  • 开源网安斩获CCIA中国网络安全创新创业大赛总决赛三等奖
  • iOS 18 RC 版本更新,为相机应用引入了“暂停录制视频”功能
  • 滑动窗口——优选算法
  • MySQL主从同步延时高问题排查
  • 省市县相关校验sql随笔
  • 建筑物检测系统源码分享
  • linux内核驱动:ptp内核phc框架
  • rman compress
  • starrocks结合同步和异步物化视图建立数据湖和数据仓库
  • java的ReentrantLock原理
  • ARM32开发——DMA内存到内存
  • CSS实现前端布局更巧妙的方案!在 flex 布局中通过使用 margin 实现水平垂直居中以及其他常见的前端布局
  • html初体验标准标签
  • MDK平台 - 变量和函数定义绝对位置
  • RISC-V (十一)软件定时器
  • 巧用抖音关键词视频列表 API 和视频评论 API 深度解析用户互动
  • 在 Jenkins 上通过 SSH 控制 Windows 目标计算机时,出现中文乱码
  • Redis——通用命令