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

打印 上一主题 下一主题

主题 958|帖子 958|积分 2874

应用权限管控流程

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

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

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

权限组和子权限一览

链接
  1. 位置信息
  2. ohos.permission.LOCATION_IN_BACKGROUND
  3. ohos.permission.LOCATION
  4. ohos.permission.APPROXIMATELY_LOCATION
  5. 相机
  6. ohos.permission.CAMERA
  7. 麦克风
  8. ohos.permission.MICROPHONE
  9. 通讯录
  10. ohos.permission.READ_CONTACTS
  11. ohos.permission.WRITE_CONTACTS
  12. 日历
  13. ohos.permission.READ_CALENDAR
  14. ohos.permission.WRITE_CALENDAR
  15. ohos.permission.READ_WHOLE_CALENDAR
  16. ohos.permission.WRITE_WHOLE_CALENDAR
  17. 健身运动
  18. ohos.permission.ACTIVITY_MOTION
  19. 身体传感器
  20. ohos.permission.READ_HEALTH_DATA
  21. 图片和视频
  22. ohos.permission.WRITE_IMAGEVIDEO
  23. ohos.permission.READ_IMAGEVIDEO
  24. ohos.permission.MEDIA_LOCATION
  25. 音乐和音频
  26. ohos.permission.WRITE_AUDIO
  27. ohos.permission.READ_AUDIO
  28. 文件
  29. ohos.permission.READ_DOCUMENT
  30. ohos.permission.WRITE_DOCUMENT
  31. ohos.permission.READ_MEDIA
  32. ohos.permission.WRITE_MEDIA
  33. 广告跟踪
  34. ohos.permission.APP_TRACKING_CONSENT
  35. 读取已安装应用列表
  36. ohos.permission.GET_INSTALLED_BUNDLE_LIST
  37. 多设备协同
  38. ohos.permission.DISTRIBUTED_DATASYNC
  39. 蓝牙
  40. ohos.permission.ACCESS_BLUETOOTH
  41. 电话
  42. ohos.permission.ANSWER_CALL
  43. ohos.permission.MANAGE_VOICEMAIL
  44. 通话记录
  45. ohos.permission.READ_CALL_LOG
  46. ohos.permission.WRITE_CALL_LOG
  47. 信息
  48. ohos.permission.READ_CELL_MESSAGES
  49. ohos.permission.READ_MESSAGES
  50. ohos.permission.RECEIVE_MMS
  51. ohos.permission.RECEIVE_SMS
  52. ohos.permission.RECEIVE_WAP_MESSAGES
  53. ohos.permission.SEND_MESSAGES
  54. 剪切板
  55. ohos.permission.READ_PASTEBOARD
  56. 文件夹
  57. ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY
  58. ohos.permission.READ_WRITE_DESKTOP_DIRECTORY
  59. 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(用户授权),那么必要自动申请权限,此时用户会弹出对话框。如
  1. import abilityAccessCtrl, { Context, PermissionRequestResult } from '@ohos.abilityAccessCtrl';
  2. import { BusinessError } from '@ohos.base';
  3. import common from '@ohos.app.ability.common';
  4. let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  5. let context: Context = getContext(this) as common.UIAbilityContext;
  6. // 申请摄像头权限
  7. atManager.requestPermissionsFromUser(context, ['ohos.permission.CAMERA']).then((data: PermissionRequestResult) => {
  8.   console.info('data:' + JSON.stringify(data));
  9.   console.info('data permissions:' + data.permissions);
  10.   console.info('data authResults:' + data.authResults);
  11. }).catch((err: BusinessError) => {
  12.   console.info('data:' + JSON.stringify(err));
  13. });
复制代码
此图只做演示,反面上述代码具体结果逐一对应

4.访问接口-必须

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


写在最后

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

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

最新鸿蒙全栈开发学习线路


鸿蒙HarmonyOS开发教学视频


大厂面试真题



鸿蒙OpenHarmony源码分析


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

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表