#HarmonyOS NEXT 体验官# 应用权限原理和封装
踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-csdn&ha_sourceId=89000445
背景
在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。
授权方式
包括两种授权方式,分别是 system_grant(系统授权) 和 user_grant(用户授权)。
system_grant(系统授权)
仅需要在 module.json5 文件中,标注需要的权限,应用打开时,系统会自动赋予需要的权限。
user_grant(用户授权)
需要在项目中向系统发送申请,然后由用户决定是否给应用提供需要的权限。
应用的授权等级(APL)
一共有三个等级:normal、system_basic、system_core。权限等级依次提高。
· normal 等级是全部应用都可以使用
· system_basic 等级是需要申请签名证书后,才能使用
· system_core 等级是对系统应用开放,对第三方应用不开放
应用权限
· 对所有的硬件开放
· 受限开放权限
封装代码
PermissionUtils 类
封装了三个常用的方法:
· 检查权限是否授权(CheckPermissions)
· 申请授权(RequestPermissions)
· 打开系统设置的权限管理页面(OpenPermissionSettingsPage)
index 界面
添加三个按钮分别测试对应的方法
需要注意的是,所有的权限都需要先去 module.json5 中配置权限:
模拟器中询问受限制的权限
下图的权限,可以在模拟器的调试阶段,使用自动签名的方式使用:
如果没有自动签名时,添加这些权限在 module.json5 文件中,编辑会报错。
需要注意的点:
· 确保已经连接真机或模拟器
· 打开项目结构,然后勾选自动生成签名文件
· 在项目的 build-profile.json5 文件下,查看 signingConfigs 下是否签名成功
(转载自 51CTO,作者:奥尼 5354)







评论