HarmonyOS NEXT鸿蒙开发:bundleManager.getBundleInfoForSelf() 坑-不要写在 onCreate() 方法中

描述

bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);

上面获取 BundleInfo 的代码,如果有 同步需求,不要写在下图位置,经过测试,写在下图位置,不是同步,是异步,导致程序继续往下运行,所以下面的代码获取不到 BundleInfo

我怀疑在 onCreate() 方法中,还没有初始化完成,所以获取不到 BundleInfo

解决

写在下图位置中:

获取当前应用的BundleInfo

import { bundleManager } from '@kit.AbilityKit';

static async getBundleInfo(): Promise<bundleManager.BundleInfo> {
    return await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
}

Bundle信息

  • name: 应用的包名,用于唯一标识应用。
  • vendor: 应用开发者的名字或组织。
  • versionCode: 应用的版本号,通常是一个整数,用于版本比较。
  • versionName: 应用的版本名,通常是一个字符串,用于向用户展示。
  • minCompatibleVersionCode: 应用兼容的最低版本号。
  • targetVersion: 应用目标版本的代码,表示应用是为哪个鸿蒙OS版本设计的。
  • AppInfo:应用程序的配置信息。
  • hapModulesInfo: HarmonyOS Ability Package (HAP) 模块的信息数组。
  • reqPermissionDetails: 请求的权限详细信息。
  • permissionGrantStates: 权限授予状态。
  • signatureInfo: 应用的签名信息。
  • installTime: 应用的安装时间(时间戳)。
  • updateTime: 应用的更新时间(时间戳)。
  • routerMap: 应用的路由映射信息。

原文出处:/show_1GW2Qwbcq6Hn.html