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

鸿蒙中 应用的权限(一)

本文同步发表于我的微信公众号微信搜索程语新视界即可关注每个工作日都有文章更新一、权限管控什么是应用权限系统提供一种通用权限访问方式允许应用访问系统资源如通讯录和系统能力如摄像头、麦克风以保护系统数据包括用户个人数据和功能防止不当或恶意使用。权限保护的对象权限保护的对象可以分为两类保护类型具体内容示例数据个人数据照片、通讯录、日历、位置设备数据设备标识、相机、麦克风功能设备功能访问摄像头/麦克风、打电话、联网应用功能弹出悬浮窗、创建快捷方式二、权限使用开发应用时权限申请需要满足以下原则2.1 声明原则应用包括应用引用的第三方库所需权限必须在应用的配置文件中逐个声明。// module.json5 示例 { module: { requestPermissions: [ { name: ohos.permission.CAMERA, reason: $string:reason_camera, usedScene: { abilities: [CameraAbility], when: inuse } } ] } }2.2 最小化原则权限申请满足最小化原则禁止申请非必要的、已废弃的权限。过多权限申请会引起用户对应用安全性的担忧以及使用体验变差从而影响应用的安装率和留存率。2.3 使用理由应用申请敏感权限时必须填写权限使用理由字段。敏感权限通常是指与用户隐私密切相关的权限包括地理位置相机麦克风日历健身运动身体传感器音乐文件图片视频2.4 动态申请原则应用敏感权限须在对应业务功能执行前动态申请满足隐私最小化要求。2.5 业务连续性原则用户拒绝授予某个权限后应用与此权限无关的其他业务功能应允许正常使用。三、授权方式根据授权方式的不同权限类型可分为三种3.1 system_grant系统授权定义系统授权类型应用被允许访问的数据不会涉及用户个人信息。授权时机系统会在用户安装应用时自动授予相应的权限。特点无需用户手动确认不涉及用户隐私数据安装即授权3.2 user_grant用户授权定义用户授权类型应用被允许访问的数据将会涉及用户个人信息。授权时机需要在应用运行时通过弹窗请求用户授权。特点需要用户手动确认涉及用户隐私数据用户可随时在设置中关闭// 动态申请用户授权示例 import { abilityAccessCtrl } from kit.AbilityAccessCtrlKit; let atManager abilityAccessCtrl.createAtManager(); let permissions: Arraystring [ohos.permission.CAMERA]; atManager.requestPermissionsFromUser(this.context, permissions) .then((data) { console.info(requestPermissionsFromUser success); }) .catch((error) { console.error(requestPermissionsFromUser failed); });3.3 manual_settings手动设置授权引入版本API 21开始支持定义手动设置授权类型应用被允许访问的数据将会涉及用户个人信息应用被允许执行的操作可能对系统或者用户产生严重的影响。授权时机只能由用户在系统设置应用中授权无法通过弹窗请求。特点无法通过代码弹窗申请必须引导用户去系统设置开启权限级别较高影响较大四、权限组和子权限为了尽可能减少权限弹窗数量并优化交互体验系统将逻辑紧密相关的user_grant权限组合成多个权限组。当应用请求权限时同一个权限组的权限将会在一个弹窗内一起请求用户授权。权限组中的某个权限称之为该权限组的子权限。注意事项权限组和权限的归属关系不是固定不变的一个权限所属的权限组可能发生变化。五、权限机制5.1 TokenID定义系统采用TokenIDToken identity作为应用的唯一标识。作用权限管理服务通过应用的TokenID来管理应用的ATAccess Token信息包括身份标识APP ID子用户信息分身索引信息APL等级权限授权状态特点系统支持多用户特性和应用分身特性同一个应用在不同的子用户下和不同的分身应用会有各自的AT这些AT的TokenID也是不同的。5.2 APL等级元能力权限等级为了防止应用过度索取和滥用权限系统基于APL配置了不同的权限开放范围。应用的等级可以分为以下三个等级等级依次提高APL级别说明normal默认情况下应用的APL等级都为normal等级system_basic该等级的应用服务提供系统基础服务system_core该等级的应用服务提供操作系统核心能力。应用APL等级不允许配置为system_core权限APL等级根据权限对于不同等级应用有不同的开放范围权限类型对应分为以下三个等级APL级别说明开放范围normal允许应用访问超出默认规则外的普通系统资源如配置Wi-Fi信息、调用相机拍摄等。这些系统资源的开放对用户隐私以及其他应用带来的风险较低。APL等级为normal及以上的应用system_basic允许应用访问操作系统基础服务相关的资源如系统设置、身份认证等。这些系统资源的开放对用户隐私以及其他应用带来的风险较高。- APL等级为system_basic及以上的应用- 部分权限对normal级别的应用受限开放system_core涉及开放操作系统核心资源的访问操作。这部分系统资源是系统最核心的底层服务一旦遭受破坏操作系统将无法正常运行。- APL等级为system_core的应用- 仅对系统应用开放5.3 访问控制列表ACL原则上低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL提供了低等级应用访问高等级权限的特殊渠道。系统权限均定义了ACL使能字段。当该字段为TRUE时应用可以使用ACL方式跨级别申请权限。场景举例开发者正在开发APL等级为normal的A应用由于功能场景需要A应用需要跨级申请等级为system_basic的P权限。当P权限的ACL使能为TRUE时A应用可以通过ACL方式跨级申请权限P。六、携带数据的权限类型在传统的权限模型中权限呈现非是即否的状态每个权限所包含的内容有限在逐步精细化的权限管控模型中显得力不从心。系统引入了可以携带额外信息的权限键值对。这种新的权限类型能够在日益复杂的权限管控模型中展现出更大的灵活性和适应性。场景举例以权限ohos.permission.ACCESS_DDK_DRIVERS为例在扩展外设场景中系统需要管理当前应用能够连接的驱动服务端而这样的服务端可能有多个这就要求权限能够携带具体的服务端数据明确指出应用能够连接哪些外设驱动服务端。七、申请权限的方式在申请权限前需要确认权限名称根据API接口中的需要权限或permission字段确认权限名称检索权限类型通过权限列表页面检索确认权限类型选择操作路径根据目标权限的开放范围和授权方式选择相应的操作路径不同权限类型的申请路径权限类型授权方式操作路径开放权限系统授权system_grant声明权限 → 访问接口声明权限开放权限用户授权user_grant声明权限 → 向用户申请授权 → 访问接口受限开放权限系统授权system_grant申请使用受限权限 → 声明权限 → 访问接口受限开放权限用户授权user_grant申请使用受限权限 → 声明权限 → 向用户申请授权 → 访问接口7.3 具体操作步骤详解步骤1声明权限所有类型都需要在module.json5中声明所需权限

相关文章:

鸿蒙中 应用的权限(一)

本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新 一、权限管控 什么是应用权限? 系统提供一种通用权限访问方式,允许应用访问系统资源(如通讯录)和系统能力&#xff…...

LabVIEW图像处理框架核心结构示意图

labview通用图像处理框架程序源码 详情见图做图像处理的朋友应该都经历过这种尴尬:写个Demo三分钟搞定,项目一复杂就变成意大利面条代码。今天分享的这套LabVIEW通用框架,核心就三句话——状态机打底、队列传数据、插件式开发。咱们直接扒开源…...

Pyrene-PEG-NH2 氨基功能化芘荧光PEG活细胞成像与示踪探针

芘丁酸酯聚乙二醇氨基(Pyrene-PEG-NH2)是一种结合了芘(Pyrene)、聚乙二醇(PEG)和氨基(NH2)的多功能化合物。【基本信息】中文名称:芘丁酸酯-聚乙二醇-氨基;芘…...

【智慧商城 | 项目笔记】第六天

前言:智慧商城项目是关于前端的Vue2的项目,本系列文章,我讲总结我从这个项目中学到的知识点,写项目笔记。如果你也在初学Vue或想巩固Vue相关的知识,希望这系列文章可以帮助到你。 【智慧商城 | 项目笔记】第六天今日完…...

高速多串激光泵浦二极管驱动电路:可扩展、高电流、高电压、多重安全保护电路架构参考

高速多串激光泵浦二极管驱动电路,可扩展, 连续电流可达25A,支持最高电压90V; 调制频率可达10kHz 多重安全保护电路; 可单独屏蔽故障电流串; 闭环控制,带电流输出; 电路架构是基于多年…...

西门子V15及以上版本通用模拟量处理程序块:1200与1500模拟量滤波程序及报警功能

西门子1200和1500通用模拟量处理程序块,模拟量滤波程序,程序块可方便直接调用,用于过滤峰值且可以方便调用模拟量高低报警。 博图版本V15及以上。工业现场模拟量信号处理总带着点玄学,尤其是车间里那些老设备,时不时给…...

【Python一周入门】学习笔记归纳(二)六大基本类型

文章目录数字(Number)字符串String列表List元组Tuple字典Dictionary集合Set推导式列表推导式字典推导式集合推导式元组推导式(生成器推导式)数字(Number) 数字类型是客观的不可变的,分为整型,浮点型&#…...

Linux(1)的基本使用

系统每次开机默认进入字符界面[rootnode11 ~]# systemctl set-default multi-user.target系统每次开机默认进入图形界面[rootnode11 ~]# systemctl set-default graphical.targetweb界面登录(很少用)[rootnode11 ~]# systemctl enable --now cockpit.soc…...

LatentMorph:将隐式潜空间推理融入图像生成

目录 一、前言 二、 LatentMorph 论文概述 核心问题 方法:LatentMorph 实验结果 核心贡献 三、四个组件是怎么运作的,输入输出是啥 四个组件详解 1. 视觉记忆凝结器 (Memory Condensers) 2. 强化学习驱动的推理调用器 (Reason Invoker) 3.…...

2000-2024年上市公司迪博内部控制指数评分及评级数据

迪博内部控制指数简介迪博内部控制指数(DIB内部控制指数)由深圳迪博企业风险管理技术有限公司发布,是国内权威的上市公司内部控制评价体系。该指数从内部控制五要素(控制环境、风险评估、控制活动、信息与沟通、内部监督&#xff…...

基于Matlab的不变矩算法实现数字验证码识别过程及其GUI界面构建

基于matlab不变矩算法实现数字验证码 过程:先对验证图像进行去噪、定位、归一化等预处理,然后计算待识别数字的不变矩,再进行特征匹配,得到识别结果。 以Matlab软件为开发平台来进行设计实现及仿真,并构建相应的GUI界面…...

M3U8 调试不用愁,这款在线播放工具帮你高效搞定

在音视频开发、流媒体运维的日常工作中,M3U8 格式的流验证与调试是高频需求,不管是验证直播流链路是否通畅,还是排查点播 M3U8 播放异常,都需要一款便捷的工具来支撑。而本地播放器配置繁琐、原生浏览器对 HLS 协议支持有限&#…...

一款轻量高效的 M3U8 在线播放工具,开发者调试必备

在音视频开发、流媒体测试的日常工作中,我们经常会遇到 M3U8 格式的视频流验证需求 —— 不管是检查直播流的可用性,还是调试点播链接的播放兼容性,都需要一个便捷的工具来快速验证。而原生 HTML5 的 video 标签对 HLS 协议支持有限&#xff…...

常见二进制漏洞原理及分析

本文将介绍常见二进制漏洞类型及避免方法。一.虚拟内存的布局Linux中进程使用虚拟内存,再由MMU转换成物理内存,其虚拟内存布局如下,其中堆区向高 地址生长,栈区向低地址生长,且代码段和rodata段为只读属性。栈区 …...

永磁同步电机伺服控制仿真:三环PI参数自整定Matlab模型探秘

永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介模型为永磁同步电机伺服控制仿真,采用 Matlab R2018a Simulink搭建。模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等…...

用 Copilot 一年后,我的代码质量变好了还是变差了?

01 从怀疑到离不开去年这个时候,GitHub Copilot 刚在我们小组里小范围开放试用。我当时的态度是不屑一顾的——一个 AI 能懂多少逻辑?代码补全不还是靠 IDE 的智能提示?况且我学了几年 Java,写过多少个项目,什么场景没…...

电网电压扰动下相光伏并网逆变器控制的Simulink仿真探索

电网电压扰动联系相光伏并网逆变器的控制 simukink仿真 电流闭环控制的逆变器并网 LCL 型输出滤波器 含有文档报告在光伏并网发电系统中,逆变器作为核心部件,其性能的优劣直接影响到电能质量和系统稳定性。而电网电压扰动是实际运行中不可避免的问题&am…...

内存涨价、供应不稳?嵌入式工程师必看:适合轻量级项目ARM选型与存储避坑指南

在嵌入式开发的圈子里,很多工程师都经历过这种“阵痛”: 原本用得好好的高性能单片机(MCU),随着项目需求的增加——要接个高分辨率屏、要做个复杂的协议转换、要跑个轻量级语音识别,或者要处理多路音频流—…...

高速追剪程序之定长追剪实战

高速追剪程序,定长追剪,威纶触摸屏汇川5u全套程序,注释清楚。最近搞了个高速追剪的项目,用的是威纶触摸屏搭配汇川5u的全套程序,今天来跟大家分享一下。 整体思路 高速追剪的核心目标就是在物料高速运动过程中&#xf…...

提示词工程:这样跟AI说话,它才听你的!

哈,提示词是什么?简单来说,提示词(Prompt) 就是你向人工智能(比如我)发出的指令或问题。它是你用来描述“希望AI干什么”的那段文字。AI会根据你提供的提示词,来生成相应的回答或内容…...

微电网二次控制:下垂控制与基于数据采样二次控制的奇妙融合

微电网二次控制,下垂控制,基于数据采样的二次控制,补偿了下垂控制的偏差,实现了有功均分,效果好在微电网的运行控制领域,下垂控制和基于数据采样的二次控制是两个关键的技术点,它们相互配合&…...

无人零售/五金厂必看!边缘设备Java+YOLOv11推理稳定性全攻略:崩溃率从15%降到0.1%,断点续检1秒恢复

今年帮深圳南山的无人零售创业公司和东莞长安的五金厂同时做了边缘设备Java+YOLOv11推理的稳定性升级——无人零售那边是100个瑞芯微RK3588货架盘点设备,之前的崩溃率15%/天,每天要重启3-5次,数据丢失10%+,断点续检难,每次重启要重新盘点所有10个货架(10分钟),效率低,…...

STM32串口双机模拟汽车电量里程项目:Protues仿真与源码解析

STM32单片机开发的串口双机模拟汽车电量里程项目,两个STM32单片机进行数据交互,模拟主控与驱动传感器发送数据,可以手动调节数据,并显示屏显示出来。 包括程序源码和protues仿真8.12版本。 程序源码注释详细。 非常适合开发人员&a…...

基于Matlab的螺丝轮廓识别:数字图像处理流程

基于matlab的螺丝轮廓识别,matlab数字图像处理。 对输入图像进行灰度化,滤波,平滑操作然后进行阈值化,分割成二值图像,之后对图像进行图像的形态学操作,最终使用边缘检测算法提取边缘,最终获得十…...

SpringBoot3实战集成mzt-biz-log,一行代码搞定业务日志记录

作为后端开发者,业务日志是线上问题排查、操作追溯和审计留痕的核心抓手。手写业务日志不仅重复代码量大,还容易出现记录不规范、关键信息漏记错记的问题,排查线上问题时往往效率极低。最近我在SpringBoot3项目中接入了mzt-biz-log这款轻量业…...

搞嵌入式开发的小伙伴应该都遇到过PID调参这个头疼的问题吧?今天咱们直接上干货,聊聊怎么在STM32上玩转PID自整定和温度控制。先扔个核心代码片段镇楼

基于STM32开发的PID自整定和PID温控和PWM输出程序源码,采用反馈法进行PID参数自动整定,得出系统临界值比例增益,自动计算调节,使系统进入正常状态。 程序源码注释详细typedef struct {float Kp;float Ki;float Kd;float integral_…...

智能指针相关

零、预备知识 右值: 表示不可寻址的临时数据值。 根据C11标准,右值分为纯右值(如字面量、表达式结果)和将亡值(即将销毁的对象)。 右值具有不可修改、无持久内存地址的特性 右值引用&&、移动语义…...

当立体车库遇上PLC仿真

西门子1200PLC立体车库 33立体车库 博图触摸屏仿真 不需要实物 自带人机界面,动画,可以仿真 还有接线图原理图 现在拥有自动出入仓库的功能 IO表已列出最近捣鼓了个挺有意思的项目——基于西门子1200PLC的33立体车库仿真。不用焊线接电机,纯…...

HTML基础教程(一)

目录 一、HTML基本概念 二、基础HTML (Tag) 三、Html常用格式 一、HTML基本概念 什么是HTML文件? HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”。和一般文本的不同的是,一个HTML文件不…...

AI基石 | 对齐技术:从 RLHF 到 DPO —— 赋予大模型“三观”的终极进化

AI基石 | 对齐技术:从 RLHF 到 DPO —— 赋予大模型“三观”的终极进化 前言 如果 SFT(监督微调)后的模型是一个“懂事”的练习生,那么对齐后的模型就是一个“老练”的专家。 练习生虽然知道问答的格式,但依然存在两个…...