HarmonyOS鸿蒙Next中entry-default.hap的以下permission为用户授权权限但未配置reason和usedscene

HarmonyOS鸿蒙Next中entry-default.hap的以下permission为用户授权权限但未配置reason和usedscene 【问题描述】:审核时被驳回提示entry-default.hap的以下permission为用户授权权限但未配置reason和usedscene,这个我们是为了集成友盟统计SDK,加上的权限

cke_245.png

cke_677.jpeg

cke_1185.png

友盟SDK:https://developer.umeng.com/docs/119267/detail/2712046

【问题现象】:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/declare-permissions#在配置文件中声明权限目前开发文档的意思,“usedScene”: {}这样写是可以的?根据文档的提示是必须有usedScene的字段,但abilities,when这两个字段是可选填写。友盟SDK的开发文档是写了空值,希望全局统计,避免指定abilities后遗漏页面。


更多关于HarmonyOS鸿蒙Next中entry-default.hap的以下permission为用户授权权限但未配置reason和usedscene的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,文档中“user_grant/manual_settings权限时,usedScene必填,其他情况下选填”描述的意思是,当申请的是user_grant/manual_settings权限时,useScene和里面字段必填。其他情况选填是申请非user_grant/manual_settings权限时。

更多关于HarmonyOS鸿蒙Next中entry-default.hap的以下permission为用户授权权限但未配置reason和usedscene的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以给幽梦也去反馈下

在HarmonyOS Next中,entry-default.hap配置的permission若为用户授权权限,必须同时设置reason和usedscene字段。reason用于说明权限申请目的,usedscene描述使用场景。缺少这些配置会导致应用审核不通过或权限请求被系统拒绝。需在module.json5文件的abilities或extensionAbilities中补充完整权限声明。

根据您提供的截图和描述,问题核心在于:在HarmonyOS Next中,对于需要用户授权的权限(user_grant权限),在module.json5文件中声明时,必须完整配置reasonusedScene字段,而不能将它们留空或仅提供空对象 {}

审核驳回是正确的。开发文档中关于 usedScene: {} 的示例,通常是为了展示字段结构,或者针对某些特定场景(如非user_grant权限)。对于所有 user_grant 类型的权限,usedScene 及其内部的 abilitieswhen 字段必须根据您的应用实际使用该权限的场景进行明确声明。

具体解决方案如下:

您需要为 ohos.permission.APPROXIMATELY_LOCATIONohos.permission.READ_PHONE_STATE 这两个权限补充 reasonusedScene 配置。

  1. 定位到配置:在您的 entry/src/main/module.json5 文件中,找到 requestPermissions 节点下对应的权限声明。

  2. 修改配置示例: 以 ohos.permission.APPROXIMATELY_LOCATION 为例,修改前可能是:

    {
      "name": "ohos.permission.APPROXIMATELY_LOCATION",
      "usedScene": {}
    }
    

    修改后应类似如下(请根据您的实际使用场景调整):

    {
      "name": "ohos.permission.APPROXIMATELY_LOCATION",
      "reason": "$string:location_permission_reason", // 在资源文件中定义的原因描述
      "usedScene": {
        "abilities": [
          "EntryAbility" // 明确列出需要使用此权限的Ability。如果多个Ability使用,需全部列出。
        ],
        "when": "inuse" // 或 "always"。根据SDK功能选择,统计SDK通常需要“inuse”(使用时)
      }
    }
    

    对于 ohos.permission.READ_PHONE_STATE 进行同样操作。

  3. 关键点说明

    • reason:必须在 $string: 引用的资源文件中(如 entry/src/main/resources/base/element/string.json)用简洁明了的语言向用户解释为什么需要这个权限。例如,对于位置权限,原因可以是“用于提供基于位置的统计服务和内容推荐”。
    • usedScene
      • abilities必须明确列出所有会触发此权限请求的Ability。即使友盟SDK希望“全局统计”,您也需要列出集成该SDK的所有Ability(通常是您的主Ability EntryAbility)。不能为空数组。
      • when:必须指定为 "inuse"(应用在前台使用时)或 "always"(始终,包括后台)。对于统计SDK,通常选择 "inuse"

关于友盟SDK文档的说明: 友盟SDK的配置示例可能基于更早的规范或未及时更新。在HarmonyOS Next的审核要求下,必须遵循其最新的权限声明规范。您需要按照上述方式补全配置,这是应用上架的必要条件。

总结:请根据您的应用实际使用权限的Ability场景,补全 reasonusedScene(包括 abilitieswhen)的配置,然后重新打包提交审核即可。

回到顶部