HarmonyOS overlay机制动态添加没有权限
动态overlay使用方式2
应用通过addResource(path),实现资源覆盖;通过removeResource(path),实现overlay删除。overlay资源路径需经过元能力的getContext().BundleCodeDir获取此应用对应的沙箱根目录,由应用的沙箱根目录+overlay的hsp名称组成。如:let path = getContext().bundleCodeDir + “hsp名”,其对应沙箱路径为:/data/storage/el1/bundle/enter-release-signed.hsp。
getContext().bundleCodeDir获取的应用水箱目录不允许拼接路径访问资源文件,导致没有权限将下载好的hsp包存储在该目录下,此问题该如何处理
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 实况窗推送,提示没有权限
1992浏览 • 1回复 待解决
HarmonyOS 怎么动态设置某个组件添加浮层overlay?
2130浏览 • 1回复 待解决
HarmonyOS Overlay机制是否支持换肤
650浏览 • 1回复 待解决
HarmonyOS 已经开启地图服务仍然提示没有权限
1794浏览 • 1回复 待解决
HarmonyOS ArkTS操作文件时,提问没有权限
1571浏览 • 1回复 待解决
动态申请权限能否添加描述
1962浏览 • 1回复 待解决
HarmonyOS overlay机制调用后界面刷新问题
1254浏览 • 1回复 待解决
deveco studio 成员账号没有获取自动签名的权限,只有主账号有权限
1414浏览 • 1回复 待解决
有没有权限说明清单,分享一下啊?
5405浏览 • 1回复 待解决
HarmonyOS 真机运行socket.UDPSocket.send 报没有权限,但是ability这边已经配置了网络权限
894浏览 • 1回复 待解决
HarmonyOS 通过命令录制视频后,使用rm删除视频提示没有权限
736浏览 • 1回复 待解决
HarmonyOS 有没有办法动态添加组件?
2305浏览 • 1回复 待解决
HarmonyOS view动态添加
1152浏览 • 1回复 待解决
HarmonyOS 服务端发送push后,未收到push,查询原因提示没有权限打开Activity
961浏览 • 1回复 待解决
HarmonyOS 怎么动态获取添加日历的权限,并往日历中写入日程
1286浏览 • 1回复 待解决
without medialibrary permission没有媒体库权限是添加哪个权限呢?ReadMedia吗?
5136浏览 • 1回复 待解决
HarmonyOS 有没有deeplink 机制
882浏览 • 1回复 待解决
HarmonyOS 权限添加出错
1001浏览 • 1回复 待解决
HarmonyOS 如何动态添加组件?
1187浏览 • 1回复 待解决
Harmony Navigation组件动态添加
1198浏览 • 1回复 待解决
HarmonyOS 动态申请权限申请不了
1129浏览 • 1回复 待解决
HarmonyOS Tabs组件怎么动态添加TabContent
1251浏览 • 1回复 待解决
HarmonyOS 为什么在这上面给手机或者模拟器上放一个文件,说没有权限怎么处理
870浏览 • 1回复 待解决
List没有Reverse属性。在聊天界面的时候,数据无法动态往上添加
1308浏览 • 1回复 待解决
DirectionalLayout 动态添加组件问题
5797浏览 • 1回复 待解决
文档中的动态overlay,是使用hdc file send命令把hsp包推到指定的应用安装路径下,再在代码中使用addResource(path)实现资源覆盖。但如果开发者的rom为user权限,会没有权限往安装路径下推hsp包,此时,可以通过以下步骤实现overlay:
1.在overlay hsp包的module.json5文件中,配置 "targetModuleName"和"targetPriority"值,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/module-configuration-file-V5#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%A0%87%E7%AD%BE
2.将overlay的hsp包和hap主包同时安装到手机端上,注意hsp包和hap包的签名需要一致,此时hsp包会存在与hap包的安装目录下
3.在hap包中通过this.context.resourceManager.addResource(this.path)方式动态overlay,path为this.context.bundleCodeDir + overlay包包名,注意包名需要与overlay包的module.json5中的name保持一致,如overlay包的module.json5中的name配置为’overlay’,则path为this.context.bundleCodeDir + ‘overlay.hsp’;
同时也可以使用overlay.setOverlayEnabled方式进行静态overlay
4.杀掉应用进程,重新进入应用,可以看到overlay成功。如果希望在线热更新,需要申请system_basic等级权限ohos.permission.LISTEN_BUNDLE_CHANGE