写点什么

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

作者:最新动态
  • 2025-12-05
    湖北
  • 本文字数:769 字

    阅读完需:约 3 分钟

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!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)

用户头像

最新动态

关注

还未添加个人签名 2019-07-19 加入

还未添加个人简介

评论

发布
暂无评论
#HarmonyOS NEXT体验官# 应用权限原理和封装_最新动态_InfoQ写作社区