当前位置: 代码网 > it编程>硬件开发>arm开发 > 【鸿蒙实战开发】HarmonyOS 应用权限管控流程

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

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

应用权限管控流程

在 harmonyos 应用开发过程中,往往会涉及到敏感数据和硬件资源的调动和访问,而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解,才可以在应用开发中提高效率和避免踩坑。

权限管控了什么

权限管控,主要是管控 数据和功能。

●数据包括个人数据(如照片、通讯录、日历、位置等)、设备数据(如设备标识、相机、麦克风等)。
●功能包括设备功能(如访问摄像头/麦克风、打电话、联网等)、应用功能(如弹出悬浮窗、创建快捷方式等)。

权限组和子权限

我们先看什么是子权限。比如对于媒体相册的功能操作来说。读取相册内容是一种权限、写入内容到相册是一种权限。 那么它们属于媒体相册这个大权限中的子权限。那么我们的应用在申请媒体相册的读写权限时,考虑到用户的体验。其实是会把两个权限合并为一个弹出窗口,询问用户授予权限。如果用户允许了,那么就等于获得了媒体相册的读写权限了。总结就是

●读取媒体相册是子权限、写入媒体相册是子权限
●它们合起来就是一个权限组。

在这里插入图片描述

权限组和子权限一览

链接

位置信息
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等级分为三级:

在这里插入图片描述

权限apl等级

权限apl等级也分为三级:

在这里插入图片描述

访问控制列表(acl)

权限等级和应用apl等级是一一对应的。原则上,拥有低apl等级的应用默认无法申请更高等级的权限。访问控制列表acl(access control list)提供了解决低等级应用访问高等级权限问题的特殊渠道。我们可以将acl理解为让普通的老百姓也具有某种士官的能力,如调兵遣将。

需要注意的是,并不是所有的权限都能通过申请acl来实现跨等级的应用来获得。具体哪些权限可以被跨等级申请使用。harmonyos中也有明确标识的。如: 链接
在这里插入图片描述

授权方式

不管是什么的方式申请权限,最后在用户的体验上一共分为两种。 system_grant(系统授权) 和 user_grant(用户授权)

1.system_grant(系统授权)

○应用被允许访问的数据不会涉及到用户或设备的敏感信息
○需要在安装包中申请system_grant权限,那么系统会在用户安装应用时,自动把相应权限授予给应用。

2.user_grant(用户授权)

○会弹出窗口询问用户的意见-应用被允许访问的数据将会涉及到用户或设备的敏感信息

○需要注意的是,如果用户增加拒绝过授权,那么只能通过引导用户到系统设置页面来手动打开权限
在这里插入图片描述

申请应用权限流程

一图胜万言

总流程图

在这里插入图片描述

normal等级的应用申请权限

在这里插入图片描述

system_basic等级的应用申请权限

在这里插入图片描述

申请应用权限操作步骤

1.声明权限-必须

1.在 main/module.json5 中 配置 requestpermissions 字段声明权限

2.配置内容
在这里插入图片描述

2.声明acl权限-非必须

在这里插入图片描述

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));
});

此图只做演示,不和上述代码具体效果一一对应
在这里插入图片描述

4.访问接口-必须

此时,就可以直接调用相关接口,实现业务功能

附上述流程思维导图

在这里插入图片描述

写在最后

有很多小伙伴不知道该从哪里开始学习鸿蒙开发技术?也不知道鸿蒙开发的知识点重点掌握的又有哪些?自学时频繁踩坑,导致浪费大量时间。结果还是一知半解。所以有一份实用的鸿蒙(harmonyos next)全栈开发资料用来跟着学习是非常有必要的。

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

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

最新鸿蒙全栈开发学习线路在这里插入图片描述

鸿蒙harmonyos开发教学视频

在这里插入图片描述

大厂面试真题

在这里插入图片描述

在这里插入图片描述

鸿蒙openharmony源码剖析

在这里插入图片描述

这份资料能帮住各位小伙伴理清自己的学习思路,更加快捷有效的掌握鸿蒙开发的各种知识。有需要的小伙伴自行领取,,先到先得~无套路领取!!

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com