1# 声明权限 2 3应用在申请权限时,需要在项目的配置文件中,逐个声明需要的权限,否则应用将无法获取授权。 4 5## 在配置文件中声明权限 6 7应用需要在module.json5配置文件的requestPermissions标签中声明权限。 8 9| 属性 | 含义 | 数据类型 | 取值范围 | 10| -------- | -------- | -------- | -------- | 11| name | 需要使用的权限名称。 | 字符串 | **必填**,需为系统已定义的权限,取值范围请参考[应用权限列表](app-permissions.md)。 12| reason | 申请权限的原因。 | 字符串 | **可选填写**,该字段用于应用上架校验,当申请的权限为user_grant权限时必填,并且需要进行多语种适配。<br>使用string类资源引用。格式为$string: \*\*\*。<br/>可参考[权限使用理由的文案内容规范](#权限使用理由的文案内容规范)。 | 13| usedScene | 权限使用的场景,该字段用于应用上架校验。包括abilities和when两个子项。<br/>- abilities:使用权限的UIAbility或者ExtensionAbility组件的名称。<br/>- when:调用时机。 | 对象 | usedScene**必填**。<br/>- abilities:**可选填写**,可以配置为多个UIAbility或者ExtensionAbility名称的字符串数组。<br/>- when:**可选填写**,但如果配置此字段,只能填入固定值inuse(使用时)、always(始终),不能为空。<br/>当申请的权限为user_grant权限时建议填写。 | 14 15> **说明:** 16> 已在子模块中申请的权限,无需在主项目重复添加,权限将在整个应用生效。 17 18## 声明样例 19 20> **说明:** 21> 以下"ohos.permission.PERMISSION1"、"ohos.permission.PERMISSION2"仅为样例示意,不存在该权限。请开发者根据实际需要,参照上表要求填写对应属性。 22 23```json 24{ 25 "module" : { 26 // ... 27 "requestPermissions":[ 28 { 29 "name" : "ohos.permission.PERMISSION1", 30 "reason": "$string:reason", 31 "usedScene": { 32 "abilities": [ 33 "FormAbility" 34 ], 35 "when":"inuse" 36 } 37 }, 38 { 39 "name" : "ohos.permission.PERMISSION2", 40 "reason": "$string:reason", 41 "usedScene": { 42 "abilities": [ 43 "FormAbility" 44 ], 45 "when":"always" 46 } 47 } 48 ] 49 } 50} 51``` 52 53## 权限使用理由的文案内容规范 54 55当申请的权限为user_grant权限时,字段reason(申请权限的原因)必填。开发者需要在应用配置文件中,配置每一个需要使用的权限。 56 57但在实际向用户弹窗申请授权时,user_grant权限将会以[权限组](app-permission-mgmt-overview.md#权限组和子权限)的形式向用户申请。当前支持的权限组请查看[应用权限组列表](app-permission-group-list.md)。 58 59### reason字段的内容写作规范及建议 60<!--RP1--> 611. 保持句子简洁、不要加入多余的分割符号。 62 63 **建议句式**:用于某事。 64 65 **示例**:用于扫码拍照。 66 672. 用途描述的字串建议小于72个字符(即36个中文字符,UI界面显示大约为两行)。不能超过256个字符,以保证多语言适配的体验。 68 693. 如果不写,将展示默认的申请理由。 70<!--RP1End--> 71### 权限使用理由展示方式 72 73权限使用理由有两个展示途径:授权弹窗界面和“设置(Settings)”界面。“设置”的具体路径:设置-隐私-权限管理-某应用某权限详情。 74 751. 如果是申请“电话、信息、日历、通讯录、通话记录”这五个权限组中的权限,根据工信部要求,将展示具体子权限的内容与用途。 76 77 **句式**:包括子权限A和子权限B,用于某事。 78 79 **样例**:用于获取通话状态和移动网络信息,用于安全运营和统计计费服务。 80 812. 如果是申请其他权限组中的权限,系统将使用权限组内当前被申请的第一个子权限的使用理由,作为该权限组的使用理由进行展示。组内的排序,固定按照权限管理内排列的权限组数组顺序。 82 83 举例说明:权限组A = {权限A, 权限B, 权限C};申请传入的权限是{权限C, 权限B},界面将展示权限B的权限使用理由。 84