HarmonyOS鸿蒙Next中hap如何获取主module中的app_icon,代码获取,不是这种($r"")
HarmonyOS鸿蒙Next中hap如何获取主module中的app_icon,代码获取,不是这种($r"") hap中如何获取 主module中的app_icon,代码获取,不是这种($r"")

更多关于HarmonyOS鸿蒙Next中hap如何获取主module中的app_icon,代码获取,不是这种($r"")的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可参照官方文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-bundlemanager-abilityinfo

更多关于HarmonyOS鸿蒙Next中hap如何获取主module中的app_icon,代码获取,不是这种($r"")的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,通过BundleManager获取应用包信息后提取主模块图标。使用getBundleInfoForSelf方法获取当前应用的BundleInfo,从中读取appInfo的iconId字段。示例代码:
import bundleManager from '@ohos.bundle.bundleManager';
let bundleInfo = bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
let appIconId = bundleInfo.appInfo.iconId;
// 通过ResourceManager获取图标资源
let resourceManager = getContext().resourceManager;
let appIcon = await resourceManager.getMediaContent(appIconId);
需在module.json5中声明ohos.permission.GET_BUNDLE_INFO权限。
在HarmonyOS Next中,可以通过ResourceManager获取主module的app_icon资源。具体代码实现如下:
import { resourceManager } from '@ohos.resourceManager';
// 获取主module的ResourceManager
let resourceMgr = resourceManager.getSystemResourceManager();
// 获取app_icon资源ID
let appIconId = resourceMgr.getResourceByName('app_icon', ResourceType.MEDIA);
// 获取资源路径
resourceMgr.getMediaContent(appIconId).then((value) => {
console.log('App icon path:', value);
}).catch((error) => {
console.error('Get app icon failed:', error);
});
或者使用资源ID直接获取:
// 通过资源ID获取(需知道具体资源ID)
let appIconId = 0x1000000; // 示例资源ID
resourceManager.getMediaContent(appIconId).then((value) => {
console.log('App icon path:', value);
});
注意:需要确保在主module的module.json5中正确配置了app_icon资源路径,并在请求权限中添加ohos.permission.GET_BUNDLE_RESOURCES权限。

