鸿蒙HarmonyOS开发实战—安全管理(权限开发(1),2024年最新kotlin语法糖

本文详细介绍了鸿蒙HarmonyOS的权限管理,包括自定义权限、访问权限控制、API接口说明以及动态申请权限的步骤。开发者需要在config.json中声明权限,并根据权限类型(system_grant或user_grant)决定是否需要用户手动授权。动态申请权限时,首先检查权限,若未被授予,可以请求用户授权。此外,文章还提到了权限分类和敏感权限的处理方式。
摘要由CSDN通过智能技术生成
值说明 类型 取值范围 默认值 规则约束
name 必须,填写需要使用的权限名称。 字符串 自定义 未填写时,解析失败。
reason 可选,当申请的权限为user_grant权限时此字段必填。 描述申请权限的原因。 字符串 显示文字长度不能超过256个字节。 user_grant权限必填,否则不允许在应用市场上架。 需做多语种适配。
usedScene 可选,当申请的权限为user_grant权限时此字段必填。 描述权限使用的场景和时机。场景类型有:ability、when(调用时机)。可配置多个ability。 ability:字符串数组 when:字符串 ability:ability的名称 when:inuse(使用时)、always(始终) ability:空 when:inuse user_grant权限必填ability,可选填when。

如果声明使用的权限的grantMode是system_grant,则权限会在当应用安装的时候被自动授予。

如果声明使用的权限的grantMode是user_grant,则必须经用户手动授权(用户在弹框中授权或进入权限设置界面授权)才可使用。用户会看到reason字段中填写的理由,来帮助用户决定是否给予授权。

说明 对于授权方式为user_grant的权限,每一次执行需要这一权限的操作时,都需要检查自身是否有该权限。当自身具有权限时,才可继续执行,否则应用需要请求用户授予权限。

自定义权限

开发者需要在config.json文件中的“defPermissions”字段中自定义所需的权限:

{
“module”: {
“defPermissions”: [
{
“name”: “com.myability.permission.MYPERMISSION”,
“grantMode”: “system_grant”,
“availableScope”: [“signature”]
}, {

}
]
}
}

权限定义格式采用数组格式,可支持同时定义多个权限,自定义的权限个数最多不能超过1024个。

defPermissions权限定义字段说明

值说明 类型 取值范围 默认值 规则约束
name 必填,权限名称。为最大可能避免重名,采用反向域公司名+应用名+权限名组合。 字符串 自定义 第三方应用不允许填写系统存在的权限,否则安装失败。未填写解析失败。权限名长度不能超过256个字符。
grantMode 必填,权限授予方式。 字符串 user_grant(用户授权)system_grant(系统授权)取值含义请参见:表3。 system_grant 未填值或填写了取值范围以外的值时,自动赋予默认值; 不允许第三方应用填写user_grant,填写后会自动赋予默认值。
availableScope 选填,权限限制范围。不填则表示此权限对所有应用开放。 字符串数组 signatureprivilegedrestricted取值含义请参见:表4。 填写取值范围以外的值时,权限限制范围不生效。 由于第三方应用并不在restricted的范围内,很少会出现权限定义者不能访问自身定义的权限的情况,所以不允许三方应用填写restricted。
label 选填,权限的简短描述,若未填写,则使用到简短描述的地方由权限名取代。 字符串 自定义 需要多语种适配。
description 选填,权限的详细描述,若未填写,则使用到详细描述的地方由label取代。 字符串 自定义 需要多语种适配。
  • user_grant(用户授权)
  • system_grant(系统授权)

取值含义请参见:表3。 system_grant 未填值或填写了取值范围以外的值时,自动赋予默认值; 不允许第三方应用填写user_grant,填写后会自动赋予默认值。 availableScope 选填,权限限制范围。不填则表示此权限对所有应用开放。 字符串数组

  • signature
  • privileged
  • restricted

取值含义请参见:表4。 空 填写取值范围以外的值时,权限限制范围不生效。 由于第三方应用并不在restricted的范围内,很少会出现权限定义者不能访问自身定义的权限的情况,所以不允许三方应用填写restricted。 label 选填,权限的简短描述,若未填写,则使用到简短描述的地方由权限名取代。 字符串 自定义 空 需要多语种适配。 description 选填,权限的详细描述,若未填写࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值