网站建设方案的内容,内江建网站,江苏省建筑网监督信息平台,seo的定义是什么高质量 HarmonyOS 权限管控流程
在 HarmonyOS 应用开发过程中#xff0c;往往会涉及到敏感数据和硬件资源的调动和访问#xff0c;而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解#xff0c;才可以在应用开发中提高效率和避免踩坑。
权限管控了…高质量 HarmonyOS 权限管控流程
在 HarmonyOS 应用开发过程中往往会涉及到敏感数据和硬件资源的调动和访问而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解才可以在应用开发中提高效率和避免踩坑。
权限管控了什么
权限管控主要是管控 数据和功能。
数据包括个人数据如照片、通讯录、日历、位置等、设备数据如设备标识、相机、麦克风等。功能包括设备功能如访问摄像头/麦克风、打电话、联网等、应用功能如弹出悬浮窗、创建快捷方式等。
权限组和子权限
我们先看什么是子权限。比如对于媒体相册的功能操作来说。读取相册内容是一种权限、写入内容到相册是一种权限。 那么它们属于媒体相册这个大权限中的子权限。那么我们的应用在申请媒体相册的读写权限时考虑到用户的体验。其实是会把两个权限合并为一个弹出窗口询问用户授予权限。如果用户允许了那么就等于获得了媒体相册的读写权限了。总结就是
读取媒体相册是子权限、写入媒体相册是子权限它们合起来就是一个权限组。 权限组和子权限一览 链接 位置信息
ohos.permission.LOCATION_IN_BACKGROUNDohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION相机
ohos.permission.CAMERA
麦克风
ohos.permission.MICROPHONE
通讯录
ohos.permission.READ_CONTACTSohos.permission.WRITE_CONTACTS日历
ohos.permission.READ_CALENDARohos.permission.WRITE_CALENDARohos.permission.READ_WHOLE_CALENDARohos.permission.WRITE_WHOLE_CALENDAR健身运动
ohos.permission.ACTIVITY_MOTION
身体传感器
ohos.permission.READ_HEALTH_DATA
图片和视频
ohos.permission.WRITE_IMAGEVIDEOohos.permission.READ_IMAGEVIDEOohos.permission.MEDIA_LOCATION音乐和音频
ohos.permission.WRITE_AUDIOohos.permission.READ_AUDIO文件
ohos.permission.READ_DOCUMENTohos.permission.WRITE_DOCUMENTohos.permission.READ_MEDIAohos.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_CALLohos.permission.MANAGE_VOICEMAIL通话记录
ohos.permission.READ_CALL_LOGohos.permission.WRITE_CALL_LOG信息
ohos.permission.READ_CELL_MESSAGESohos.permission.READ_MESSAGESohos.permission.RECEIVE_MMSohos.permission.RECEIVE_SMSohos.permission.RECEIVE_WAP_MESSAGESohos.permission.SEND_MESSAGES剪切板
ohos.permission.READ_PASTEBOARD
文件夹
ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORYohos.permission.READ_WRITE_DESKTOP_DIRECTORYohos.permission.READ_WRITE_DOCUMENTS_DIRECTORYAPL等级
APLAbility Privilege Level元能力权限等级等级分为两类。一类是应用APL等级、另一类是权限APL等级。说人话就是 不管官阶的士官和其对应的权限之间的关系。
应用APL等级
应用APL等级分为三级
APL级别说明normal默认情况下应用的APL等级都为normal等级。system_basic该等级的应用服务提供系统基础服务。system_core该等级的应用服务提供操作系统核心能力。 应用APL等级不允许配置为system_core。
权限APL等级
权限APL等级也分为三级
APL级别说明开放范围normal允许应用访问超出默认规则外的普通系统资源如配置Wi-Fi信息、调用相机拍摄等。 这些系统资源的开放包括数据和功能对用户隐私以及其他应用带来的风险低。APL等级为normal及以上的应用。system_basic允许应用访问操作系统基础服务系统提供或者预置的基础功能相关的资源如系统设置、身份认证等。 这些系统资源的开放对用户隐私以及其他应用带来的风险较高。APL等级为system_basic及以上的应用。system_core涉及开放操作系统核心资源的访问操作。这部分系统资源是系统最核心的底层服务如果遭受破坏操作系统将无法正常运行。- APL等级为system_core的应用。 - 仅对系统应用开放。
访问控制列表ACL
权限等级和应用APL等级是一一对应的。原则上拥有低APL等级的应用默认无法申请更高等级的权限。访问控制列表ACLAccess Control List提供了解决低等级应用访问高等级权限问题的特殊渠道。我们可以将ACL理解为让普通的老百姓也具有某种士官的能力如调兵遣将。
需要注意的是并不是所有的权限都能通过申请ACL来实现跨等级的应用来获得。具体哪些权限可以被跨等级申请使用。HarmonyOS中也有明确标识的。如 链接 授权方式
不管是什么的方式申请权限最后在用户的体验上一共分为两种。 system_grant系统授权 和 user_grant用户授权 system_grant系统授权 应用被允许访问的数据不会涉及到用户或设备的敏感信息需要在安装包中申请system_grant权限那么系统会在用户安装应用时自动把相应权限授予给应用。 user_grant用户授权 会弹出窗口询问用户的意见-应用被允许访问的数据将会涉及到用户或设备的敏感信息 需要注意的是如果用户增加拒绝过授权那么只能通过引导用户到系统设置页面来手动打开权限
申请应用权限流程
一图胜万言
总流程图 normal等级的应用申请权限 system_basic等级的应用申请权限 申请应用权限操作步骤
1.声明权限-必须 在 main/module.json5 中 配置 requestPermissions 字段声明权限 配置内容
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.访问接口-必须
此时就可以直接调用相关接口实现业务功能
附上述流程思维导图