HarmonyOS鸿蒙Next中requestPermissions的usedScene中的abilities字段有要求吗?

HarmonyOS鸿蒙Next中requestPermissions的usedScene中的abilities字段有要求吗? requestPermissions的usedScene中的abilities字段填写有要求吗?不填写的话会影响正常的权限申请吗?

3 回复

usedScene表示的是权限使用的场景,该字段用于应用上架校验。包括abilities和when两个子项。

  • abilities:使用权限的UIAbility或者ExtensionAbility组件的名称。
  • when:调用时机。

usedScene必填

  • abilities:可选填写,可以配置为多个UIAbility或者ExtensionAbility名称的字符串数组。
  • when:可选填写,但如果配置此字段,只能填入固定值inuse(使用时)、always(始终),不能为空。

当申请的权限为user_grant权限时建议填写。

示例:

{
  "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鸿蒙Next中requestPermissions的usedScene中的abilities字段有要求吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,requestPermissions的usedScene内abilities字段用于声明权限使用场景。该字段需填写Ability名称数组,指定哪些Ability需要请求该权限。Ability名称必须与config.json中定义的Ability名称完全一致,且需确保这些Ability已在应用中正确定义。系统会根据该字段验证权限与Ability的关联性,若未正确配置可能导致权限请求失败。

在HarmonyOS Next中,requestPermissionsusedScene配置中的abilities字段是可选的,用于声明权限使用的具体Ability场景。若不填写该字段,不会影响权限申请的基本流程,系统仍会正常弹出授权对话框。

但需要注意:

  1. 若声明abilities,需确保填写的Ability名称与工程中实际Ability的name配置完全一致,否则可能导致权限使用场景描述不准确
  2. 未声明时,系统默认权限适用于所有Ability,但某些精细化权限管控场景可能需要明确指定Ability
  3. 建议根据业务实际使用权限的Ability进行声明,便于权限管理的清晰性和可维护性

权限申请结果主要取决于用户授权操作,abilities字段的缺失不会直接导致授权失败。

回到顶部