背景
在项目中,避免不了需要调用系统资源和系统能力,比如:日历读写、摄像头等。因此,需要了解对系统资源访问权限的申请方式方法。
授权方式
包括两种授权方式,分别是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下是否签名成功
浙公网安备 33010602011771号