大连密封材料 发表于 2024-8-18 20:21:55

【鸿蒙实战开发】HarmonyOS 应用权限管控流程

应用权限管控流程

在 HarmonyOS 应用开发过程中,每每会涉及到敏感数据和硬件资源的调动和访问,而这部门的调用就会涉及到管控这部门的知识和内容了。我们必要对它有所了解,才可以在应用开发中进步效率和避免踩坑。
权限管控了什么

权限管控,重要是管控 数据和功能。
●数据包罗个人数据(如照片、通讯录、日历、位置等)、装备数据(如装备标识、相机、麦克风等)。
●功能包罗装备功能(如访问摄像头/麦克风、打电话、联网等)、应用功能(如弹出悬浮窗、创建快捷方式等)。
权限组和子权限

我们先看什么是子权限。比如对于媒体相册的功能操纵来说。读取相册内容是一种权限、写入内容到相册是一种权限。 那么它们属于媒体相册这个大权限中的子权限。那么我们的应用在申请媒体相册的读写权限时,考虑到用户的体验。实在是会把两个权限合并为一个弹出窗口,询问用户授予权限。假如用户答应了,那么就便是获得了媒体相册的读写权限了。总结就是
●读取媒体相册是子权限、写入媒体相册是子权限
●它们合起来就是一个权限组。
https://img-blog.csdnimg.cn/direct/7508eb80202b449395a9df61b4b0c6dc.jpeg
权限组和子权限一览

链接
位置信息
ohos.permission.LOCATION_IN_BACKGROUND

ohos.permission.LOCATION

ohos.permission.APPROXIMATELY_LOCATION

相机
ohos.permission.CAMERA
麦克风
ohos.permission.MICROPHONE
通讯录
ohos.permission.READ_CONTACTS

ohos.permission.WRITE_CONTACTS

日历
ohos.permission.READ_CALENDAR

ohos.permission.WRITE_CALENDAR

ohos.permission.READ_WHOLE_CALENDAR

ohos.permission.WRITE_WHOLE_CALENDAR

健身运动
ohos.permission.ACTIVITY_MOTION
身体传感器
ohos.permission.READ_HEALTH_DATA
图片和视频
ohos.permission.WRITE_IMAGEVIDEO

ohos.permission.READ_IMAGEVIDEO

ohos.permission.MEDIA_LOCATION

音乐和音频
ohos.permission.WRITE_AUDIO

ohos.permission.READ_AUDIO

文件
ohos.permission.READ_DOCUMENT

ohos.permission.WRITE_DOCUMENT

ohos.permission.READ_MEDIA

ohos.permission.WRITE_MEDIA

广告跟踪
ohos.permission.APP_TRACKING_CONSENT
读取已安装应用列表
ohos.permission.GET_INSTALLED_BUNDLE_LIST
多设备协同
ohos.permission.DISTRIBUTED_DATASYNC
蓝牙
ohos.permission.ACCESS_BLUETOOTH
电话
ohos.permission.ANSWER_CALL

ohos.permission.MANAGE_VOICEMAIL

通话记录
ohos.permission.READ_CALL_LOG

ohos.permission.WRITE_CALL_LOG

信息
ohos.permission.READ_CELL_MESSAGES

ohos.permission.READ_MESSAGES

ohos.permission.RECEIVE_MMS

ohos.permission.RECEIVE_SMS

ohos.permission.RECEIVE_WAP_MESSAGES

ohos.permission.SEND_MESSAGES

剪切板
ohos.permission.READ_PASTEBOARD
文件夹
ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY

ohos.permission.READ_WRITE_DESKTOP_DIRECTORY

ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY
APL等级

APL(Ability Privilege Level,元能力权限等级)等级,分为两类。一类是应用APL等级、另一类是权限APL等级。说人话就是 不管官阶的士官和其对应的权限之间的关系。
应用APL等级

应用APL等级分为三级:
https://img-blog.csdnimg.cn/direct/4962eea2e070471490cbfdde442cb20a.png
权限APL等级

权限APL等级也分为三级:
https://img-blog.csdnimg.cn/direct/3ecf100ec4d14d5abb1ab2a92b187f70.png
访问控制列表(ACL)

权限等级和应用APL等级是逐一对应的。原则上,拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACL(Access Control List)提供了解决低等级应用访问高等级权限题目的特殊渠道。我们可以将ACL明白为让普通的老百姓也具有某种士官的能力,如调兵遣将。
必要留意的是,并不是所有的权限都能通过申请ACL来实现跨等级的应用来获得。具体哪些权限可以被跨等级申请使用。HarmonyOS中也有明白标识的。如: 链接
https://img-blog.csdnimg.cn/direct/e0d8306673644f24bdd8ca7035ffb7ad.jpeg
授权方式

不管是什么的方式申请权限,最后在用户的体验上一共分为两种。 system_grant(系统授权) 和 user_grant(用户授权)
1.system_grant(系统授权)
○应用被答应访问的数据不会涉及到用户或装备的敏感信息
○必要在安装包中申请system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。
2.user_grant(用户授权)
○会弹出窗口询问用户的意见-应用被答应访问的数据将会涉及到用户或装备的敏感信息
○必要留意的是,假如用户增加拒绝过授权,那么只能通过引导用户到系统设置页面来手动打开权限
https://img-blog.csdnimg.cn/direct/521cec42e158489ebc896a3488a9784f.png
申请应用权限流程

一图胜万言
总流程图

https://img-blog.csdnimg.cn/direct/d85f92e1a1434ba2b30e7d10f679c60d.png
normal等级的应用申请权限

https://img-blog.csdnimg.cn/direct/2845fda9e45d47b3a9b649395fefefff.png
system_basic等级的应用申请权限

https://img-blog.csdnimg.cn/direct/3a0cb313ecbf41baabf4a3175660bf4a.png
申请应用权限操纵步骤

1.声明权限-必须

1.在 main/module.json5 中 配置 requestPermissions 字段声明权限
2.配置内容
https://img-blog.csdnimg.cn/direct/590e67f2a39f4fd19d659f21dd508258.png
2.声明ACL权限-非必须

https://img-blog.csdnimg.cn/direct/93f3ee86111b40dfbd5e4aefb9e12dd1.png
3.向用户申请授权-非必须

假如你申请的权限类型是 system_grant(系统授权),那么可以跳过这个步骤。假如你申请的权限类型是 user_grant(用户授权),那么必要自动申请权限,此时用户会弹出对话框。如
import abilityAccessCtrl, { Context, PermissionRequestResult } from '@ohos.abilityAccessCtrl';
import { BusinessError } from '@ohos.base';
import common from '@ohos.app.ability.common';

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
let context: Context = getContext(this) as common.UIAbilityContext;
// 申请摄像头权限
atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']).then((data: PermissionRequestResult) => {
console.info('data:' + JSON.stringify(data));
console.info('data permissions:' + data.permissions);
console.info('data authResults:' + data.authResults);
}).catch((err: BusinessError) => {
console.info('data:' + JSON.stringify(err));
});
此图只做演示,反面上述代码具体结果逐一对应
https://img-blog.csdnimg.cn/direct/fd13daf603d24fb2b2df1fa68bad7f0c.jpeg
4.访问接口-必须

此时,就可以直接调用相关接口,实现业务功能
附上述流程思维导图

https://img-blog.csdnimg.cn/direct/fb39ba8d102a4d48a09ac248500ef862.jpeg
写在最后

有很多小伙伴不知道该从那里开始学习鸿蒙开发技术?也不知道鸿蒙开发的知识点重点掌握的又有哪些?自学时频仍踩坑,导致浪费大量时间。结果还是一知半解。所以有一份实用的鸿蒙(HarmonyOS NEXT)全栈开发资料用来跟着学习是非常有必要的。
获取完整版高清学习资料,请点击→鸿蒙全栈开发学习资料(安全链接,请放心点击)

这份鸿蒙(HarmonyOS NEXT)资料包罗了鸿蒙开发必掌握的核心知识要点,内容包罗了

最新鸿蒙全栈开发学习线路https://img-blog.csdnimg.cn/direct/a0f94ac2d6774423bc7bcd02e38126b3.png

鸿蒙HarmonyOS开发教学视频

https://img-blog.csdnimg.cn/direct/bb2645490eaf4bb9a82f833e3087e76c.jpeg#pic_center
大厂面试真题

https://img-blog.csdnimg.cn/direct/7a9537448ee34ba6b116455217d7e6a6.png
https://img-blog.csdnimg.cn/direct/378277e510d3475aac068766cd14d91a.png
鸿蒙OpenHarmony源码分析

https://img-blog.csdnimg.cn/direct/b51f7e26e4f648f8aeca8fdada183884.jpeg
这份资料能帮住各位小伙伴理清自己的学习思绪,更加快捷有效的掌握鸿蒙开发的各种知识。有必要的小伙伴自行领取,,先到先得~无套路领取!!

获取这份完整版高清学习资料,请点击→鸿蒙全栈开发学习资料(安全链接,请放心点击)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【鸿蒙实战开发】HarmonyOS 应用权限管控流程