学习笔记(四十八):声明权限配置

概述:

应用在申请权限时,需要在项目的配置文件中,逐个声明需要的权限,否则应用将无法获取授权。

在 src/main/module.json5 文件中进行权限声明配置

使用示例:

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "requestPermissions": [ // 权限声明
      {
        "name" : "ohos.permission.INTERNET", // 网络权限
        "reason": "$string:permission_season_internet", //可选字段 该字段用于应用上架校验,当申请的权限为user_grant权限时必填,并且需要进行多语种适配。使用string类资源引用。格式为$string: ***。
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when":"always" // 可选填写,但如果配置此字段,只能填入固定值inuse(使用时)、always(始终),不能为空。
        }
      }
    ],
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",//app图标
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
}

 

 

注意事项:

当申请的权限为user_grant权限时,字段reason(申请权限的原因)必填。开发者需要在应用配置文件中,配置每一个需要使用的权限

reason字段的内容写作规范及建议

  1. 字串应为直白、具体、易理解的完整短句, 用于向用户说明应用使用敏感权限的理由。句子避免使用被动语态,并以句号结尾。

    • 建议句式:用于做某事。

    • 样例:以申请相机权限的reason字符串为例。

      正例:用于视频通话。

      反例:使用相机。

  2. 用途描述的字串建议小于72个字符(即36个中文字符,UI界面显示大约为两行)。不能超过256个字符,以保证多语言适配的体验。

  3. 字串不能为空白字符串,即不能不填,也不能只填空格符。

  4. 如果应用申请的权限用于多个场景,需要确保字串的完整性,让用户了解应用使用此权限的所有场景;多个HAP包内如果申请同一个权限,各个权限Reason字段需要保持场景的完整性和一致性。

权限使用理由展示方式

权限使用理由有两个展示途径:授权弹窗界面和“设置(Settings)”界面。“设置”的具体路径:设置-隐私-权限管理-某应用某权限详情。

  1. 如果是申请“电话、信息、日历、通讯录、通话记录”这五个权限组中的权限,根据工信部要求,将展示具体子权限的内容与用途。

    句式:包括子权限A和子权限B,用于某事。

    样例:用于获取通话状态和移动网络信息,用于安全运营和统计计费服务。

  2. 如果是申请其他权限组中的权限,系统将使用权限组内当前被申请的第一个子权限的使用理由,作为该权限组的使用理由进行展示。组内的排序,固定按照权限管理内排列的权限组数组顺序。

    举例说明:权限组A = {权限A, 权限B, 权限C};申请传入的权限是{权限C, 权限B},界面将展示权限B的权限使用理由。

posted @ 2024-11-28 17:07  听着music睡  阅读(6)  评论(0编辑  收藏  举报