鸿蒙应用程序包管理模块
·
应用信息查询模块(@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 |
获取权限信息 | reqPermissionDetails, permissionGrantStates |
GET_BUNDLE_INFO_WITH_SIGNATURE_INFO |
获取签名信息 | signatureInfo |
GET_BUNDLE_INFO_DEFAULT |
获取默认信息 | 基础信息如 name, versionCode, versionName 等 |
参考文档
@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';
更多推荐

所有评论(0)