应用的APL(Ability Privilege Level)等级分为normal、system_basic和system_core三个等级,默认情况下,应用的APL等级都为normal等级。权限类型分为system_grant和user_grant两种类型。
应用需要在工程配置文件中,对需要的权限逐个声明,未在配置文件中声明的权限,应用将无法获得授权。HarmonyOS提供了两种应用模型,分别为FA模型和Stage模型不同的应用模型的应用包结构不同,所使用的配置文件不同,我们主讲Stage模型。
配置文件标签说明如下表所示。
标签 | 是否必填 | 说明 |
---|---|---|
name | 是 | 权限名称。 |
reason | 否 | 描述申请权限的原因。 说明 :当申请的权限为user_grant权限时,此字段必填。 |
usedScene | 否 | 描述权限使用的场景和时机。 说明 :当申请的权限为user_grant权限时,此字段必填。 |
abilities | 否 | 标识需要使用到该权限的Ability,标签为数组形式。 适用模型 :Stage模型 |
ability | 否 | 标识需要使用到该权限的Ability,标签为数组形式。 适用模型 :FA模型 |
when | 否 | 标识权限使用的时机,值为inuse/always。- inuse:表示为仅允许前台使用。- always:表示前后台都可使用。 |
使用Stage模型的应用,需要在module.json5配置文件中声明权限。
{
"module" : {
// ...
"requestPermissions":[
{
"name" : "ohos.permission.PERMISSION1",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"inuse"
}
},
{
"name" : "ohos.permission.PERMISSION2",
"reason": "$string:reason",
"usedScene": {
"abilities": [
"FormAbility"
],
"when":"always"
}
}
]
}
}
本文根据HarmonyOS官方文档API9整理