申请悬浮窗口的权限失败 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
我看这个权限的权限级别: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
代码里动态申请权限参考[@ohos.abilityAccessCtrl (程序访问控制管理)](https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md/#requestpermissionsfromuser9-2)
| 权限级别 | 授权方式 | 配置方法 |
|----------------|----------------|-----------------------------------------------|
| 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
,通常是由于应用程序未正确配置或获取所需的权限。以下是可能导致该问题的原因和解决方法:
-
权限配置问题:确保在应用的
config.json
文件中正确声明了悬浮窗口权限。悬浮窗口权限的声明如下:"reqPermissions": [ { "name": "ohos.permission.SYSTEM_FLOAT_WINDOW" } ]
-
权限申请时机:悬浮窗口权限属于敏感权限,需要在运行时动态申请。确保在应用启动或需要使用悬浮窗口时,调用
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'); } });
-
系统限制:某些设备或系统版本可能对悬浮窗口权限有额外的限制。确保设备支持悬浮窗口功能,并且系统版本符合要求。
-
签名问题:如果应用未正确签名,可能导致权限申请失败。确保应用已通过华为开发者联盟的签名验证。
-
用户拒绝权限:如果用户在权限申请时选择了拒绝,后续的权限申请可能会被系统自动拒绝。可以在应用设置中引导用户手动开启悬浮窗口权限。
总结:确保应用正确声明和申请悬浮窗口权限,并检查设备支持和用户操作,以解决MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED
错误。