应用信息查询模块(@ohos.bundle.bundleManager

核心功能

bundleManager 是鸿蒙系统提供的应用程序包管理模块,主要用于:

  • 查询应用包信息(BundleInfo
  • 获取应用程序信息(ApplicationInfo
  • 查询UIAbility组件信息(AbilityInfo
  • 管理ExtensionAbility组件信息(ExtensionAbilityInfo

适用模型与版本

  • 支持 FA模型 和 Stage模型(具体接口需参考上下文)
  • 首批接口从 API version 9 开始支持,新增接口通过版本号标记起始支持版本。

 导入方式

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

常用标志位(BundleFlag

BundleFlag 用于精确控制返回的 BundleInfo 包含哪些内容。某些标志位(如获取Ability信息)需要与 GET_BUNDLE_INFO_WITH_HAP_MODULE 组合使用才生效。

标志位 描述 对应 BundleInfo 中的字段
GET_BUNDLE_INFO_WITH_APPLICATION 获取应用配置信息 appInfo 
GET_BUNDLE_INFO_WITH_HAP_MODULE 获取模块配置信息 hapModulesInfo 
GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION 获取权限信息 reqPermissionDetailspermissionGrantStates 
GET_BUNDLE_INFO_WITH_SIGNATURE_INFO 获取签名信息 signatureInfo 
GET_BUNDLE_INFO_DEFAULT 获取默认信息 基础信息如 nameversionCodeversionName 等

参考文档

@ohos.bundle.bundleManager (应用程序包管理模块)官方API

使用示例

获取自身应用信息

在鸿蒙(HarmonyOS)应用开发中,getBundleInfoForSelf 是一个用于获取应用自身包信息的关键接口。对于普通应用开发者,最常用的场景就是获取自身应用的信息。

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>
  • 作用:获取当前应用自身的BundleInfo信息。

  • 参数 bundleFlags:指定要获取的信息内容,通过组合不同的标志位来获取特定信息。

  • 返回值:返回一个Promise,解析为包含应用包信息的BundleInfo对象。

获取应用基础信息

// 获取bundleInfo,包含带有metadataArray信息的appInfo信息
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;

try {
  bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
}

获取更详细的模块与组件信息
如果你需要获取HAP模块、Ability或ExtensionAbility的详细信息,可以组合使用不同的 BundleFlag 标志位。

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

async function getDetailedBundleInfo() {
  try {
    // 组合标志位:获取HAP模块信息和Ability信息
    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | 
                      bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY;
    
    let bundleInfo = await bundleManager.getBundleInfoForSelf(bundleFlags);
    
    // 遍历HAP模块信息
    if (bundleInfo.hapModulesInfo) {
      for (let moduleInfo of bundleInfo.hapModulesInfo) {
        console.info("模块名称: " + moduleInfo.name);
        // 可以进一步获取moduleInfo中的abilityInfo、extensionAbilityInfo等
      }
    }
  } catch (err) {
    console.error("获取详细包信息失败: " + err.message);
  }
}

BundleInfo 属性说明

字段 说明
name 应用包的名称
vendor 应用包的供应商
versionCode 应用包的版本号
versionName 应用包的版本文本描述信息
appInfo 应用程序的配置信息
hapModulesInfo 模块的配置信息
installTime 应用包安装时间
updateTime 应用包更新时间

企业级包管理模块(@ohos.enterprise.bundleManager

适用场景
设备管理应用(如MDM)对应用安装策略的管控。

导入方式

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

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐