鸿蒙开发Ability Kit(程序框架服务):【选择申请权限的方式】

news2024/11/22 4:40:44

选择申请权限的方式

应用在访问数据或者执行操作时,需要评估该行为是否需要应用具备相关的权限。如果确认需要目标权限,则需要在应用安装包中申请目标权限。

每一个权限的权限等级、授权方式不同,申请权限的方式也不同,开发者在申请权限前,需要先根据以下流程判断应用能否申请目标权限。

zh-cn_image_0000001698506718

上图的数字标注,请参考以下说明:

  • 标注1:应用APL等级与权限等级的匹配关系请参考[APL等级说明]。

  • 标注2:权限的授权方式分为user_grant(用户授权)和system_grant(系统授权),具体请参考[授权方式说明]。

    • 如果目标权限是system_grant类型,开发者在进行权限申请后,系统会在安装应用时自动为其进行权限预授予,开发者不需要做其他操作即可使用权限。

    • 在应用需要获取user_grant权限时,请完成以下步骤:

      1. 在配置文件中,声明应用需要请求的权限。
      2. 将应用中需要申请权限的目标对象与对应目标权限进行关联,让用户明确地知道,哪些操作需要用户向应用授予指定的权限。
      3. 运行应用时,在用户触发访问操作目标对象时应该调用接口,精准触发动态授权弹框。该接口的内部会检查当前用户是否已经授权应用所需的权限,如果当前用户尚未授予应用所需的权限,该接口会拉起动态授权弹框,向用户请求授权。
      4. 检查用户的授权结果,确认用户已授权才可以进行下一步操作。
  • 标注3:应用可以通过ACL(访问控制列表)方式申请高级别的权限。

应用可根据目标权限的开放范围、授权方式,参考以下操作路径申请对应权限。

normal等级应用申请权限的方式

权限类型授权方式操作路径
[所有应用可申请]system_grant[声明权限] > 访问接口
[所有应用可申请]user_grant[声明权限] > [向用户申请授权] > 访问接口
[允许normal等级应用通过ACL跨级申请]system_grant[声明权限] > [声明ACL权限] > 访问接口
[允许normal等级应用通过ACL跨级申请]user_grant[声明权限] > [声明ACL权限]> [向用户申请授权] > 访问接口

说明:

  • 如果system_basic等级的权限,ACL使能为false,则normal等级应用无法申请该权限。
  • 当前可通过DevEco Studio完成[ACL方式跨级别申请权限],但该方法仅用于应用调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

system_basic等级应用申请权限的方式

权限等级授权方式ACL使能操作路径
normal、system_basicsystem_grant-[声明权限]> 访问接口
normal、system_basicuser_grant-[声明权限] > [向用户申请授权]> 访问接口
system_coresystem_granttrue[声明权限]> [声明ACL权限]> 访问接口
system_coreuser_granttrue[声明权限] > [声明ACL权限] > [向用户申请授权] > 访问接口

如果应用需要将自身的APL等级声明为system_basic及以上,在开发应用安装包时,需要修改应用的HarmonyAppProvision配置文件即SDK目录下的“Toolchains / _{Version} _/ lib / UnsgnedReleasedProfileTemplate.json”文件),并重新进行应用签名。

修改方式:

HarmonyAppProvision配置文件示例如下所示,修改"bundle-info" > “apl” 字段。

"bundle-info" : {
    // ...
    "apl": "system_basic",
    // ...
},

在这里插入图片描述

说明: 直接修改HarmonyAppProvision配置文件的方式,仅用于应用调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1877426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot项目如何配置跨域

1、通过SpringSecurity进行配置 2、前端跨域配置:proxy配置项用于设置代理规则,用于前端开发中与后端API交互时使用。

llama.cpp

https://github.com/echonoshy/cgft-llm 【大模型量化】- Llama.cpp轻量化模型部署及量化_哔哩哔哩_bilibili github.com/ggerganov/llama.cpp cd ~/code/llama.cpp/build_cuda/bin ./quantize --allow-requantize /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama…

RISC-V异常处理流程概述

RISC-V异常处理流程概述 一、RISC-V异常处理流程和异常委托1.1 异常处理流程1.2 异常委托二、RISC-V异常处理中软件相关内容2.1 异常处理准备工作2.2 异常处理函数2.3 Opensbi系统调用的注册三、参考资料一、RISC-V异常处理流程和异常委托 1.1 异常处理流程 发生异常时,首先…

grpc编译

1、cmake下载 Download CMakehttps://cmake.org/download/cmake老版本下载 Index of /fileshttps://cmake.org/files/2、gprc源码下载,发现CMAKE报错 3、使用git下载 1)通过git打开一个目录:如下grpc将放在D盘src目录下 cd d: cd src2&am…

CesiumJS【Basic】- #027 加载倾斜摄影文件

文章目录 加载倾斜摄影文件1 目标2 代码2.1 main.ts3 资源加载倾斜摄影文件 1 目标 加载倾斜摄影文件(通常是.json和.b3dm配套使用) 2 代码 有意改变了高度,因为大部分情况下是需要手动调节高度的 2.1 main.ts import * as Cesium from cesium;const viewer = new Ces…

基于Java的旅游景区网站系统(springboot+vue)

作者介绍:计算机专业研究生,现企业打工人,从事Java全栈开发 主要内容:技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流(SCI论文两篇) 上点关注下点赞 生活越过…

YonBIP 获取项目代码配置(图文)

项目开发文件在本地环境重新部署后,开发端机器需要重新部署,在此记录一下操作过程。 1. 新建项目目录,在目录下点鼠标右键,选 Git Bash Here 2. 开始下载代码,根据代码量多少,几分钟就能下载完成。 3. 下载…

深入模拟版图工程师基础学习:CMOS工艺解析

作为模拟版图工程师,了解CMOS(互补金属氧化物半导体)工艺是非常重要的,以下是我们需要掌握的基本内容: 1.基础理论:理解CMOS工艺的基本原理和结构,包括NMOS和PMOS晶体管的构造及其工作原理。&a…

30 哈希的应用

位图 概念 题目 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何判断一个数是否在这40亿个整数中 1.遍历,时间复杂度O(N) 2.二分查找,需要先排序,排序(N*logN),二分查找,logN。…

什么是BIOS,如何进入BIOS设置?

什么是BIOS,如何进入BIOS设置?标题 🖥️ 什么是BIOS,如何进入BIOS设置?——默语的深入解析摘要引言正文内容🧩 什么是BIOS?🔧 如何进入BIOS设置?⚙️ 常见的BIOS设置选项…

【04】从0到1构建AI生成思维导图应用 -- 创建 AI 工作流

【04】从0到1构建AI生成思维导图应用 – 创建 AI 工作流 大家好!最近自己做了一个完全免费的AI生成思维导图的网站,支持下载,编辑和对接微信公众号,可以在这里体验:https://lt2mind.zeabur.app/ 上一章:h…

012、GridFS文件查询过程深度解析

目录 GridFS文件查询过程深度解析 1. GridFS基本概念 2. 查询过程详解 2.1 查询文件元数据 2.2 计算块数量和范围 2.3 查询文件块 2.4 组装文件内容 3. 优化查询性能 3.1 索引优化 3.2 流式处理 4. 高级查询技巧 4.1 范围查询 4.2 元数据查询 5. GridFS查询性能研…

python(基础语法,pandas,numpy,正则表达式,数据预处理)

python学习推荐网址: 白月黑羽 一、语法基础 目标: • list、tuple、set、dict的基本用法 • 内置函数 len(), eval(),range(),sort(…

长鑫存储母公司斥资24亿美元发展国产HBM

国产DRAM厂商长鑫存储母公司睿力集成计划投资24亿美元在上海建一座高端封装工厂。据报道,该工厂将专注于高带宽存储器(HBM)芯片的封装,预计到2026年中开始投入生产。长鑫存储将利用来自多方投资者的资金进行建设,其中包…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputConsumer (组合按键)】

组合按键 InputConsumer模块提供对按键事件的监听。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口均为系统接口,三方应用不支持调用。 导入模块 import inputConsumer …

AI生图反向测试

1.在海艺AI先找一张图片,网址:免费AI艺术生成器:用文本创造AI艺术 - 海艺AI 2.上传到通义,让他描述一下图片特征 分析一下图片特征,用文字尽量详细的描述出来 这张图片展示了一位女性的肖像。她有着一头乌黑亮丽的头…

【折腾笔记】兰空图床使用Minio作为储存策略

前言 花了几个小时研究了一下在兰空图床中使用Minio作为存储策略,官方并没有给出太多关于minio的储存策略配置文档,我是经过反复尝试,然后根据错误日志的提示以及查阅兰空图床在GitHub上面的issues悟出来的配置方法。 因为我的兰空图床和Minio都是基于群晖的NAS设备DS423+…

【Python机器学习】分类向量——One-Hot编码(虚拟变量)

为了学习分类特征,以某国成年人收入数据集(adult)为例,adult数据集的任务是预测一名工人的收入是高于50k还是低于50k,这个数据集的特征包括工人的年龄、雇佣方式、教育水平、性别、每周工作时长、职业等。 这个任务属于…

C++知识点总结 (02):C++中的语句(简单语句、条件语句、迭代语句、跳转语句、异常处理语句、try语句等)

文章目录 1、简单语句(1)空语句(2)复合语句 2、条件语句3、迭代语句(1)常规for循环(2)范围for循环(3)while和do...while 4、跳转语句(1)break(2)continue(3)goto 5、异常处理语句(1)标准异常(2)throw抛出异常 6、try语句 1、简单语句 (1)空语句 ; (2)复合语句 用花括号括起来的…

PHP爬虫类的并发与多线程处理技巧

PHP爬虫类的并发与多线程处理技巧 引言: 随着互联网的快速发展,大量的数据信息存储在各种网站上,获取这些数据已经成为很多业务场景下的需求。而爬虫作为一种自动化获取网络信息的工具,被广泛应用于数据采集、搜索引擎、舆情分析…