diff --git a/product/phone/src/main/ets/model/appManagementImpl/AppManagementModel.ts b/product/phone/src/main/ets/model/appManagementImpl/AppManagementModel.ts index c78d08b3bc076a9fd14779fe4c344aa6b8bf938b..faee9407a930663af954c40ea210df751b3f0049 100644 --- a/product/phone/src/main/ets/model/appManagementImpl/AppManagementModel.ts +++ b/product/phone/src/main/ets/model/appManagementImpl/AppManagementModel.ts @@ -62,7 +62,9 @@ export class AppManagementModel extends BaseModel { */ setAppManagementListener() { this.mBundleInfoList = []; - bundleManager.getAllBundleInfo(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION) + bundleManager.getAllBundleInfo(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | + bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | + bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY) .then((data) => { LogUtil.info('settings AppManagementModel setAppManagementListener getBundleInfos() start '); LogUtil.info('settings AppManagementModel data.length: ' + data.length + ' data: ' + JSON.stringify(data)); @@ -85,11 +87,14 @@ export class AppManagementModel extends BaseModel { let that = this; LogUtil.info('settings AppManagementModel data[index].name :' + data[index].name); try { - let context = GlobalContext.getContext().getObject(GlobalContext.globalKeySettingsAbilityContext) as common.Context; + let abilityContext = GlobalContext.getContext().getObject(GlobalContext.globalKeySettingsAbilityContext) as common.Context; let appInfo = data[index].appInfo; + const firstHapModuleInfo = data[index].hapModulesInfo[0] // 取第一个hap信息 + const firstAbilityInfo = firstHapModuleInfo.abilitiesInfo.length > 0 ? firstHapModuleInfo.abilitiesInfo[0] : {iconId: 0} // 取第一个abilityInfo信息 + const context = abilityContext.createModuleContext(appInfo.labelResource.bundleName, appInfo.labelResource.moduleName) LogUtil.info('settings AppManagementModel getResourceManager appInfo.labelId:' + JSON.stringify(appInfo.labelResource)); if (appInfo.labelResource.id > 0) { - await context.resourceManager.getString(appInfo.labelResource) + await context.resourceManager.getStringValue(appInfo.labelResource.id) .then((res) => { label = res; LogUtil.info('settings AppManagementModel getResourceManager getString() res:' + label); @@ -106,8 +111,18 @@ export class AppManagementModel extends BaseModel { } LogUtil.info('settings AppManagementModel getResourceManager getString() value:' + label); LogUtil.info('settings AppManagementModel getResourceManager appInfo.iconResource:' + JSON.stringify(appInfo.iconResource)); - if (appInfo.iconResource.id > 0) { - await context.resourceManager.getMediaBase64(appInfo.iconResource) + + let iconId = firstAbilityInfo.iconId + if (iconId === 0) { + // 如果ability没有iconId,就用hap的图标 + iconId = firstHapModuleInfo.iconId + } + if (iconId === 0) { + // 如果hap没有iconId,就用app的图标 + iconId = appInfo.iconResource.id + } + if (iconId > 0) { + await context.resourceManager.getMediaBase64(iconId) .then((res) => { imageValue = res; LogUtil.info('settings AppManagementModel getResourceManager getMediaBase64() res:' + imageValue);