#HarmonyOS NEXT体验官# 应用权限原理和封装

32 阅读2分钟

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!developer.huawei.com/consumer/cn…

背景

在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。

授权方式

包括两种授权方式,分别是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)