申请悬浮窗口的权限失败 HarmonyOS 鸿蒙Next Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]

申请悬浮窗口的权限失败 HarmonyOS 鸿蒙Next Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED] 申请权限配置:

"requestPermissions": [
  {
    "name": "ohos.permission.SYSTEM_FLOAT_WINDOW",
    "reason": "$string:reason",
    "usedScene": {
      "abilities": [
        "EntryAbility"
      ],
      "when":"always"
    }
  }
],

启动app时报错:

$hdc shell bm install -p /sdcard/671eaeafb90f49d49abfc2e5b0a74629/
$ hdc shell rm -rf /sdcard/671eaeafb90f49d49abfc2e5b0a74629
Error while Deploying HAP

怎么解决呢?


更多关于申请悬浮窗口的权限失败 HarmonyOS 鸿蒙Next Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

我看这个权限的权限级别:system_basic,按照我的理解,应该要申请白名单[https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/signing-0000001587684945-V3#section157591551175916]

以上仅我个人理解,你可以在论坛里再搜搜有没有类似的帖子

更多关于申请悬浮窗口的权限失败 HarmonyOS 鸿蒙Next Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

| 权限级别       | 授权方式       | 配置方法                                      |
|----------------|----------------|-----------------------------------------------|
| normal         | system_grant   | module.json5配置生效                           |
| normal         | user_grant     | module.json5配置后,还需要在代码里申请权限      |
| system_basic   | system_grant   | ACL使能,module.json5配置生效                  |
| system_basic   | user_grant     | ACL使能,module.json5配置后,还需要在代码里申请权限 |

[ohos.permission.SYSTEM_FLOAT_WINDOW](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/security/permission-list.md/#ohospermissionsystemfloatwindow)权限级别比较高

在HarmonyOS中,申请悬浮窗口权限失败并出现错误代码MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED,通常是由于应用程序未正确配置或获取所需的权限。以下是可能导致该问题的原因和解决方法:

  1. 权限配置问题:确保在应用的config.json文件中正确声明了悬浮窗口权限。悬浮窗口权限的声明如下:

    "reqPermissions": [
        {
            "name": "ohos.permission.SYSTEM_FLOAT_WINDOW"
        }
    ]
    
  2. 权限申请时机:悬浮窗口权限属于敏感权限,需要在运行时动态申请。确保在应用启动或需要使用悬浮窗口时,调用requestPermissionsFromUser方法进行权限申请。示例代码如下:

    import abilityAccessCtrl from '[@ohos](/user/ohos).abilityAccessCtrl';
    let atManager = abilityAccessCtrl.createAtManager();
    atManager.requestPermissionsFromUser(this.context, ['ohos.permission.SYSTEM_FLOAT_WINDOW'], (err, data) => {
        if (err) {
            console.error(`Failed to request permissions: ${err.message}`);
        } else {
            console.info('Permissions granted');
        }
    });
    
  3. 系统限制:某些设备或系统版本可能对悬浮窗口权限有额外的限制。确保设备支持悬浮窗口功能,并且系统版本符合要求。

  4. 签名问题:如果应用未正确签名,可能导致权限申请失败。确保应用已通过华为开发者联盟的签名验证。

  5. 用户拒绝权限:如果用户在权限申请时选择了拒绝,后续的权限申请可能会被系统自动拒绝。可以在应用设置中引导用户手动开启悬浮窗口权限。

总结:确保应用正确声明和申请悬浮窗口权限,并检查设备支持和用户操作,以解决MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED错误。

回到顶部