harmony 鸿蒙@ohos.bundle.bundleManager (bundleManager模块)

  • 2025-06-12
  • 浏览 (3)

@ohos.bundle.bundleManager (bundleManager模块)

本模块提供应用信息的查询能力,支持应用包信息BundleInfo、应用程序信息ApplicationInfo、UIAbility组件信息AbilityInfo、ExtensionAbility组件信息ExtensionAbilityInfo等信息的查询。

说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

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

BundleFlag

包信息标志,指示需要获取的包信息的内容。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
GET_BUNDLE_INFO_DEFAULT 0x00000000 获取默认包信息,不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_APPLICATION 0x00000001 用于获取包含applicationInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、hapModuleInfo、ability、extensionAbility和permission的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_HAP_MODULE 0x00000002 用于获取包含hapModuleInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability、extensionAbility和permission的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_ABILITY 0x00000004 用于获取包含ability的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、extensionAbility和permission的信息。单独使用不生效,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY 0x00000008 用于获取包含extensionAbility的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability 和permission的信息。单独使用不生效,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION 0x00000010 用于获取包含permission的bundleInfo。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、extensionAbility和ability的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_METADATA 0x00000020 用于获取applicationInfo、moduleInfo、abilityInfo和extensionAbilityInfo中包含的metadata。单独使用不生效,它需要与GET_BUNDLE_INFO_WITH_APPLICATION、GET_BUNDLE_INFO_WITH_HAP_MODULE、GET_BUNDLE_INFO_WITH_ABILITY、GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY一起使用。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_DISABLE 0x00000040 用于获取application被禁用的BundleInfo和被禁用的Ability信息。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_SIGNATURE_INFO 0x00000080 用于获取包含signatureInfo的bundleInfo。获取的bundleInfo不包含applicationInfo、hapModuleInfo、extensionAbility、ability和permission的信息。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_MENU11+ 0x00000100 用于获取包含fileContextMenuConfig的bundleInfo。单独使用不生效,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_ROUTER_MAP12+ 0x00000200 用于获取包含routerMap的bundleInfo。单独使用不生效,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
GET_BUNDLE_INFO_WITH_SKILL12+ 0x00000800 用于获取包含skills的bundleInfo。单独使用不生效,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE、GET_BUNDLE_INFO_WITH_ABILITY、GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY一起使用。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

ExtensionAbilityType

扩展组件的类型。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
FORM 0 FormExtensionAbility:卡片扩展能力,提供卡片开发能力。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
WORK_SCHEDULER 1 WorkSchedulerExtensionAbility:延时任务扩展能力,允许应用在系统闲时执行实时性不高的任务。
INPUT_METHOD 2 InputMethodExtensionAbility:输入法扩展能力,用于开发输入法应用。
SERVICE 3 ServiceExtensionAbility:后台服务扩展能力,提供后台运行并对外提供相应能力。
ACCESSIBILITY 4 AccessibilityExtensionAbility:无障碍服务扩展能力,支持访问与操作前台界面。
DATA_SHARE 5 DataShareExtensionAbility:数据共享扩展能力,用于对外提供数据读写服务。
FILE_SHARE 6 FileShareExtensionAbility:文件共享扩展能力,用于应用间的文件分享。预留能力,仅系统应用支持。
STATIC_SUBSCRIBER 7 StaticSubscriberExtensionAbility:静态广播扩展能力,用于处理静态事件,比如开机事件。
WALLPAPER 8 WallpaperExtensionAbility:壁纸扩展能力,用于实现桌面壁纸。预留能力,仅系统应用支持。
BACKUP 9 BackupExtensionAbility:数据备份扩展能力,提供应用数据的备份恢复能力。
WINDOW 10 WindowExtensionAbility:界面组合扩展能力,允许系统应用进行跨应用的界面拉起和嵌入。
ENTERPRISE_ADMIN 11 EnterpriseAdminExtensionAbility:企业设备管理扩展能力,提供企业管理时处理管理事件的能力,比如设备上应用安装事件、锁屏密码输入错误次数过多事件等。
THUMBNAIL 13 ThumbnailExtensionAbility:文件缩略图扩展能力,用于为文件提供图标缩略图的能力。预留能力,仅系统应用支持。
PREVIEW 14 PreviewExtensionAbility:文件预览扩展能力,提供文件预览的能力,其他应用可以直接在应用中嵌入显示。预留能力,仅系统应用支持。
PRINT10+ 15 PrintExtensionAbility:文件打印扩展能力,提供应用打印照片、文档等办公场景。仅系统应用支持。
SHARE10+ 16 ShareExtensionAbility:提供分享业务能力,为开发者提供基于UIExtension的分享业务模板。
PUSH10+ 17 PushExtensionAbility:推送扩展能力,提供推送场景化消息能力。预留能力,仅系统应用支持。
DRIVER10+ 18 DriverExtensionAbility:驱动扩展能力,提供外设驱动扩展能力,仅系统应用支持。
ACTION10+ 19 ActionExtensionAbility:自定义服务扩展能力,为开发者提供基于UIExtension的自定义操作业务模板。
ADS_SERVICE11+ 20 AdsServiceExtensionAbility:广告服务扩展能力,对外提供后台自定义广告业务服务,仅系统应用支持。
EMBEDDED_UI12+ 21 EmbeddedUIExtensionAbility:嵌入式UI扩展能力,提供跨进程界面嵌入的能力。
INSIGHT_INTENT_UI12+ 22 InsightIntentUIExtensionAbility:为开发者提供能被小艺意图调用,以窗口形态呈现内容的扩展能力。
FENCE18+ 24 FenceExtensionAbility:为开发者提供地理围栏相关的能力,继承自ExtensionAbility。
ASSET_ACCELERATION18+ 26 AssetAccelerationExtensionAbility:资源预下载扩展能力,提供在设备闲时状态,进行后台资源预下载的能力。
FORM_EDIT18+ 27 FormEditExtensionAbility:为开发者提供卡片编辑的能力,继承自UIExtensionAbility。
DISTRIBUTED18+ 28 DistributedExtensionAbility:提供分布式相关扩展能力,提供分布式创建、销毁、连接的生命周期回调。
APP_SERVICE20+ 29 AppServiceExtensionAbility:为企业普通应用提供后台服务能力。
LIVE_FORM20+ 30 LiveFormExtensionAbility:互动卡片相关扩展能力,提供互动卡片创建、销毁的生命周期回调。
UNSPECIFIED 255 不指定类型,配合queryExtensionAbilityInfo接口可以查询所有类型的ExtensionAbility

PermissionGrantState

权限授予状态。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
PERMISSION_DENIED -1 拒绝授予权限。
PERMISSION_GRANTED 0 授予权限。

SupportWindowMode

标识该组件所支持的窗口模式。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
FULL_SCREEN 0 窗口支持全屏显示。
SPLIT 1 窗口支持分屏显示。
FLOATING 2 支持窗口化显示,即显示悬浮窗口。

LaunchType

指示组件的启动方式。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
SINGLETON 0 ability的启动模式,表示单实例。
MULTITON 1 ability的启动模式,表示普通多实例。
SPECIFIED 2 ability的启动模式,表示该ability内部根据业务自己指定多实例。

AbilityType

指示Ability组件的类型。

模型约束: 仅可在FA模型下使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
PAGE 1 UI界面类型的Ability。表示基于Page模板开发的FA,用于提供与用户交互的能力。
SERVICE 2 后台服务类型的Ability,无UI界面。表示基于Service模板开发的PA,用于提供后台运行任务的能力。
DATA 3 表示基于Data模板开发的PA,用于对外部提供统一的数据访问对象。

DisplayOrientation

标识该Ability的显示模式。仅适用于page类型的Ability。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
UNSPECIFIED 0 表示未定义方向模式,由系统判定。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
LANDSCAPE 1 表示横屏显示模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
PORTRAIT 2 表示竖屏显示模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
FOLLOW_RECENT 3 表示跟随上一个显示模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
LANDSCAPE_INVERTED 4 表示反向横屏显示模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
PORTRAIT_INVERTED 5 表示反向竖屏显示模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION 6 表示传感器在旋转到横向和竖向时,页面会自动旋转。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_LANDSCAPE 7 表示传感器在旋转到横向时,页面会自动旋转。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_PORTRAIT 8 表示传感器在旋转到竖向时,页面会自动旋转。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_RESTRICTED 9 表示受开关控制的自动旋转模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_LANDSCAPE_RESTRICTED 10 表述受开关控制的自动横向旋转模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_PORTRAIT_RESTRICTED 11 表示受开关控制的自动竖向旋转模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
LOCKED 12 表示锁定模式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
AUTO_ROTATION_UNSPECIFIED12+ 13 受开关控制和由系统判定的自动旋转模式。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
FOLLOW_DESKTOP12+ 14 跟随桌面的旋转模式。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

CompatiblePolicy10+

标识共享库的版本兼容类型。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
BACKWARD_COMPATIBILITY 1 共享库是向后兼容类型。

ModuleType

标识模块类型。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
ENTRY 1 应用的主模块,作为应用的入口,提供了应用的基础功能。
FEATURE 2 应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
SHARED 3 应用的动态共享库模块。

BundleType

标识应用的类型。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
APP 0 该Bundle是应用。
ATOMIC_SERVICE 1 该Bundle是原子化服务。

MultiAppModeType12+

标识应用多开的模式类型。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
UNSPECIFIED 0 未指定类型,表示multiAppMode配置未配置时的默认状态。
MULTI_INSTANCE 1 多实例模式。常驻进程不支持该字段。
APP_CLONE 2 分身模式

AbilityFlag20+

Ability组件信息标志,指示需要获取的Ability组件信息的内容。

原子化服务API: 从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

名称 说明
GET_ABILITY_INFO_DEFAULT 0x00000000 获取默认AbilityInfo,获取的AbilityInfo不包含permissions、metadata、被禁用Ability对应的AbilityInfo。通过setAbilityEnabled接口可设置Ability禁用状态、通过isAbilityEnabled接口可获取Ability禁用状态。
GET_ABILITY_INFO_WITH_PERMISSION 0x00000001 获取包含permissions的AbilityInfo。
GET_ABILITY_INFO_WITH_APPLICATION 0x00000002 获取包含applicationInfo的AbilityInfo。
GET_ABILITY_INFO_WITH_METADATA 0x00000004 获取包含metadata的AbilityInfo。
GET_ABILITY_INFO_WITH_DISABLE 0x00000008 获取被禁用Ability对应的AbilityInfo。
GET_ABILITY_INFO_ONLY_SYSTEM_APP 0x00000010 获取系统应用对应的AbilityInfo。
GET_ABILITY_INFO_WITH_APP_LINKING 0x00000040 获取通过域名校验筛选的AbilityInfo。
GET_ABILITY_INFO_WITH_SKILL 0x00000080 获取包含skills的AbilityInfo。

bundleManager.getBundleInfoForSelf

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>

根据给定的bundleFlags获取当前应用的BundleInfo,使用Promise异步回调。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleFlags number 指定返回的BundleInfo所包含的信息。

返回值:

类型 说明
Promise<BundleInfo> Promise对象,返回当前应用的BundleInfo。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.

示例:

// 获取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);
}

bundleManager.getBundleInfoForSelf

getBundleInfoForSelf(bundleFlags: number, callback: AsyncCallback<BundleInfo>): void

根据给定的bundleFlags获取当前应用的BundleInfo,使用callback异步回调。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleFlags number 指定返回的BundleInfo所包含的信息。
callback AsyncCallback<BundleInfo> 回调函数,当获取成功时,err为null,data为获取到的当前应用的BundleInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.

示例:

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

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;

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

bundleManager.getProfileByAbility

getProfileByAbility(moduleName: string, abilityName: string, metadataName: string, callback: AsyncCallback<Array<string>>): void

根据给定的moduleName、abilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,使用callback异步回调。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。
metadataName string 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name。
callback AsyncCallback> 回调函数,当获取成功时,err为null,data为获取到的Array<string>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified abilityName is not existed.
17700024 Failed to get the profile because there is no profile in the HAP.
17700029 The specified ability is disabled.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let abilityName = 'EntryAbility';
let metadataName = 'ability_metadata';

try {
  bundleManager.getProfileByAbility(moduleName, abilityName, metadataName, (err, data) => {
    if (err) {
      hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
    } else {
      hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully: %{public}s', JSON.stringify(data));
    }
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
}

bundleManager.getProfileByAbility

getProfileByAbility(moduleName: string, abilityName: string, metadataName?: string): Promise<Array<string>>

根据给定的moduleName、abilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,使用Promise异步回调。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。
metadataName string 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name,默认值为空。

返回值:

类型 说明
Promise> Promise对象,返回Array<string>。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified abilityName is not existed.
17700024 Failed to get the profile because there is no profile in the HAP.
17700029 The specified ability is disabled.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let abilityName = 'EntryAbility';

try {
  // 通过模块名称和ability名称获取相应配置文件的json格式字符串信息
  bundleManager.getProfileByAbility(moduleName, abilityName).then((data) => {
    hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
}
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let abilityName = 'EntryAbility';
let metadataName = 'ability_metadata';

try {
  // 通过模块名称,ability名称和UIAbility组件的元信息名称获取自身相应配置文件的json格式字符串信息
  bundleManager.getProfileByAbility(moduleName, abilityName, metadataName).then((data) => {
    hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
}

bundleManager.getProfileByAbilitySync10+

getProfileByAbilitySync(moduleName: string, abilityName: string, metadataName?: string): Array<string>

以同步方法根据给定的moduleName、abilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,返回对象为string数组。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。
metadataName string 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name,默认值为空。

返回值:

类型 说明
Array<string> 数组对象,返回Array<string>。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified abilityName is not existed.
17700024 Failed to get the profile because there is no profile in the HAP.
17700029 The specified ability is disabled.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let abilityName = 'EntryAbility';

try {
  // 通过模块名称和ability名称获取相应配置文件的json格式字符串信息
  let data = bundleManager.getProfileByAbilitySync(moduleName, abilityName);
  hilog.info(0x0000, 'testTag', 'getProfileByAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByAbilitySync failed. Cause: %{public}s', message);
}
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName: string = 'entry';
let abilityName: string = 'EntryAbility';
let metadataName: string = 'ability_metadata';

try {
  // 通过模块名称,ability名称和UIAbility组件的元信息名称获取相应配置文件的json格式字符串信息
  let data = bundleManager.getProfileByAbilitySync(moduleName, abilityName, metadataName);
  hilog.info(0x0000, 'testTag', 'getProfileByAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByAbilitySync failed. Cause: %{public}s', message);
}

bundleManager.getProfileByExtensionAbility

getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName: string, callback: AsyncCallback<Array<string>>): void

根据给定的moduleName、extensionAbilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,使用callback异步回调。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
extensionAbilityName string 表示ExtensionAbility组件的名称。
metadataName string 表示ExtensionAbility组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name。
callback AsyncCallback> 回调函数,当获取成功时,err为null,data为获取到的Array<string>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified extensionAbilityName not existed.
17700024 Failed to get the profile because there is no profile in the HAP.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let extensionAbilityName = 'com.example.myapplication.extension';
let metadataName = 'ability_metadata';

try {
  bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName, (err, data) => {
    if (err) {
      hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
    } else {
      hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully: %{public}s', JSON.stringify(data));
    }
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', message);
}

bundleManager.getProfileByExtensionAbility

getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName?: string): Promise<Array<string>>

根据给定的moduleName、extensionAbilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,使用Promise异步回调。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
extensionAbilityName string 表示ExtensionAbility组件的名称。
metadataName string 表示ExtensionAbility组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name,默认值为空。

返回值:

类型 说明
Promise> Promise对象,返回Array<string>对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified extensionAbilityName not existed.
17700024 Failed to get the profile because there is no profile in the HAP.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let extensionAbilityName = 'com.example.myapplication.extension';
let metadataName = 'ability_metadata';

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

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

bundleManager.getProfileByExtensionAbilitySync10+

getProfileByExtensionAbilitySync(moduleName: string, extensionAbilityName: string, metadataName?: string): Array<string>

以同步方法根据给定的moduleName、extensionAbilityName和metadataName(module.json5中metadata标签下的name)获取自身相应配置文件的json格式字符串,返回对象为string数组。

如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
moduleName string 表示Module名称。
extensionAbilityName string 表示ExtensionAbility组件的名称。
metadataName string 表示ExtensionAbility组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name,默认值为空。

返回值:

类型 说明
Array<string> 返回Array<string>对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002 The specified moduleName is not existed.
17700003 The specified extensionAbilityName not existed.
17700024 Failed to get the profile because there is no profile in the HAP.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let moduleName = 'entry';
let extensionAbilityName = 'com.example.myapplication.extension';
let metadataName = 'ability_metadata';

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

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

bundleManager.getBundleInfoForSelfSync10+

getBundleInfoForSelfSync(bundleFlags: number): BundleInfo

以同步方法根据给定的bundleFlags获取当前应用的BundleInfo。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleFlags number 指定返回的BundleInfo所包含的信息。

返回值:

类型 说明
BundleInfo 返回BundleInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;

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

bundleManager.canOpenLink12+

canOpenLink(link: string): boolean

查询给定的链接是否可以打开。链接中的scheme需要在module.json5文件的querySchemes字段下配置。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
link string 表示需要查询的链接。

返回值:

类型 说明
boolean 返回true表示给定的链接可以打开,返回false表示给定的链接不能打开。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700055 The specified link is invalid.
17700056 The scheme of the specified link is not in the querySchemes.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

try {
  let link = 'welink://';
  let data = bundleManager.canOpenLink(link);
  hilog.info(0x0000, 'testTag', 'canOpenLink successfully: %{public}s', JSON.stringify(data));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'canOpenLink failed: %{public}s', message);
}

bundleManager.getLaunchWant13+

getLaunchWant(): Want

获取本应用启动应用程序的Want参数。

原子化服务API: 从API version 13开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

返回值:

类型 说明
Want 返回包含bundleName和abilityName的Want对象。

错误码:

以下错误码的详细介绍请参见ohos.bundle错误码

错误码ID 错误信息
17700072 The launch want is not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

try {
  let want = bundleManager.getLaunchWant();
  hilog.info(0x0000, 'testTag', 'getLaunchWant ability name: %{public}s', want.abilityName);
  hilog.info(0x0000, 'testTag', 'getLaunchWant bundle name: %{public}s', want.bundleName);
} catch (error) {
  let message = (error as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getLaunchWant failed: %{public}s', message);
}

bundleManager.getBundleInfo14+

getBundleInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback<BundleInfo>): void

根据给定的bundleName、bundleFlags和userId获取BundleInfo,使用callback异步回调。

获取调用方自身信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
bundleFlags number 指定返回的BundleInfo所包含的信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。
callback AsyncCallback<BundleInfo> 回调函数,当获取成功时,err为null,data为获取到的bundleInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700026 The specified bundle is disabled.

示例:

// 额外获取包含AbilityInfo信息的bundleInfo
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY;
let userId = 100;

try {
    bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => {
        if (err) {
            hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message);
        } else {
            hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data));
        }
    });
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', message);
}
// 额外获取包含ApplicationInfo中的metadata的bundleInfo
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
let userId = 100;

try {
    bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => {
        if (err) {
            hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message);
        } else {
            hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data));
        }
    });
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', message);
}

bundleManager.getBundleInfo14+

getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback<BundleInfo>): void

根据给定的bundleName和bundleFlags获取BundleInfo,使用callback异步回调。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
bundleFlags number 指定返回的BundleInfo所包含的信息。
callback AsyncCallback<BundleInfo> 回调函数,当获取成功时,err为null,data为获取到的BundleInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700026 The specified bundle is disabled.

示例:

// 额外获取extensionAbility
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY;

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

bundleManager.getBundleInfo14+

getBundleInfo(bundleName: string, bundleFlags: number, userId?: number): Promise<BundleInfo>

根据给定的bundleName、bundleFlags和userId获取BundleInfo,使用Promise异步回调。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
bundleFlags number 指定返回的BundleInfo所包含的信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Promise<BundleInfo> Promise对象,返回BundleInfo。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700026 The specified bundle is disabled.

示例:

// 额外获取ApplicationInfo和SignatureInfo
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION|bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let userId = 100;

try {
    bundleManager.getBundleInfo(bundleName, bundleFlags, userId).then((data) => {
        hilog.info(0x0000, 'testTag', 'getBundleInfo successfully. Data: %{public}s', JSON.stringify(data));
    }).catch((err: BusinessError) => {
        hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message);
    });
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', message);
}
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;

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

bundleManager.getBundleInfoSync14+

getBundleInfoSync(bundleName: string, bundleFlags: number, userId: number): BundleInfo

以同步方法根据给定的bundleName、bundleFlags和userId获取BundleInfo。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
bundleFlags number 指定返回的BundleInfo所包含的信息。
userId number 表示用户ID,可以通过getOsAccountLocalId接口获取。

返回值:

类型 说明
BundleInfo 返回BundleInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700026 The specified bundle is disabled.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
let userId = 100;

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

bundleManager.getBundleInfoSync14+

getBundleInfoSync(bundleName: string, bundleFlags: number): BundleInfo

以同步方法根据给定的bundleName、bundleFlags获取BundleInfo。

获取调用方自身的信息时不需要权限。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
bundleFlags number 指定返回的BundleInfo所包含的信息。

返回值:

类型 说明
BundleInfo 返回BundleInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700026 The specified bundle is disabled.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let bundleName = 'com.example.myapplication';
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
try {
    let data = bundleManager.getBundleInfoSync(bundleName, bundleFlags);
    hilog.info(0x0000, 'testTag', 'getBundleInfoSync successfully: %{public}s', JSON.stringify(data));
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getBundleInfoSync failed: %{public}s', message);
}

bundleManager.getBundleNameByUid14+

getBundleNameByUid(uid: number, callback: AsyncCallback<string>): void

根据给定的uid获取对应应用的bundleName,使用callback异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uid number 表示应用程序的UID。
callback AsyncCallback<string> 回调函数,当获取成功时,err为null,data为获取到的BundleName;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700021 The uid is not found.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let uid = 20010005;
try {
    bundleManager.getBundleNameByUid(uid, (err, data) => {
        if (err) {
            hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', err.message);
        } else {
            hilog.info(0x0000, 'testTag', 'getBundleNameByUid successfully: %{public}s', JSON.stringify(data));
        }
    });
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', message);
}

bundleManager.getBundleNameByUid14+

getBundleNameByUid(uid: number): Promise<string>

根据给定的uid获取对应应用的bundleName,使用Promise异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uid number 表示应用程序的UID。

返回值:

类型 说明
Promise<string> Promise对象,返回bundleName。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700021 The uid is not found.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

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

bundleManager.getBundleNameByUidSync14+

getBundleNameByUidSync(uid: number): string

以同步方法根据给定的uid获取对应应用的bundleName。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uid number 表示应用程序的UID。

返回值:

类型 说明
string 返回获取到的bundleName。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700021 The uid is not found.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

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

bundleManager.getAppCloneIdentity14+

getAppCloneIdentity(uid: number): Promise<AppCloneIdentity>;

根据uid查询分身应用的包名和分身索引。使用Promise异步回调。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uid number 表示应用程序的UID。

返回值:

类型 说明
Promise<AppCloneIdentity> 以Promise方式返回<AppCloneIdentity>。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700021 The uid is not found.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let uid = 20010005;

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

bundleManager.getSignatureInfo18+

getSignatureInfo(uid: number): SignatureInfo

根据给定的uid获取对应应用的签名信息

需要权限: ohos.permission.GET_SIGNATURE_INFO

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uid number 表示应用程序的UID。

返回值:

类型 说明
SignatureInfo 返回SignatureInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
17700021 The uid is not found.

示例:

import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

let uid = 20010005; // uid需要替换为对应应用程序的UID。
try {
    let data = bundleManager.getSignatureInfo(uid);
    hilog.info(0x0000, 'testTag', 'getSignatureInfo successfully. Data: %{public}s', JSON.stringify(data));
} catch (err) {
    let message = (err as BusinessError).message;
    hilog.error(0x0000, 'testTag', 'getSignatureInfo failed. Cause: %{public}s', message);
}

bundleManager.getAbilityInfo20+

getAbilityInfo(uri: string, abilityFlags: number): Promise<Array<AbilityInfo>>

获取指定资源标识符和组件信息标志对应的Ability信息,使用Promise异步回调。

原子化服务API: 从API version 20开始,该接口支持在原子化服务中使用。

需要权限: ohos.permission.GET_ABILITY_INFO

系统能力: SystemCapability.BundleManager.BundleFramework.Core

参数:

参数名 类型 必填 说明
uri string 表示统一资源标识符URI,取值与module.json5配置文件中skills下的uris字段相对应。
abilityFlags number 表示Ability组件信息标志,指示需要获取的Ability组件信息的内容。

返回值:

类型 说明
Promise> 返回获取到的Ability信息数组。

错误码:

以下错误码的详细介绍请参见通用错误码ohos.bundle错误码

错误码ID 错误信息
201 Permission denied.
17700003 The ability is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_WITH_APPLICATION;
let uri = "https://www.example.com"; 

try {
    bundleManager.getAbilityInfo(uri, abilityFlags).then((data) => {
        console.info('getAbilityInfo successfully. Data: ' + JSON.stringify(data));
    }).catch((err: BusinessError) => {
        let message = (err as BusinessError).message;
        console.error('getAbilityInfo failed. Cause: ' + message);
    });
} catch (err) {
    let message = (err as BusinessError).message;
    console.error('getAbilityInfo failed. Cause: ' + message);
}

ApplicationInfo

type ApplicationInfo = _ApplicationInfo

应用程序信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_ApplicationInfo 应用程序信息。

ModuleMetadata10+

type ModuleMetadata = _ModuleMetadata

模块的元数据信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_ModuleMetadata 模块的元数据信息。

Metadata

type Metadata = _Metadata

元数据信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_Metadata 元数据信息。

BundleInfo

type BundleInfo = _BundleInfo.BundleInfo

应用包信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_BundleInfo.BundleInfo 应用包信息。

UsedScene

type UsedScene = _BundleInfo.UsedScene

权限使用的场景和时机。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_BundleInfo.UsedScene 权限使用的场景和时机。

ReqPermissionDetail

type ReqPermissionDetail = _BundleInfo.ReqPermissionDetail

应用运行时需向系统申请的权限集合的详细信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_BundleInfo.ReqPermissionDetail 应用运行时需向系统申请的权限集合的详细信息。

SignatureInfo

type SignatureInfo = _BundleInfo.SignatureInfo

应用包的签名信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_BundleInfo.SignatureInfo 应用包的签名信息。

HapModuleInfo

type HapModuleInfo = _HapModuleInfo.HapModuleInfo

模块信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_HapModuleInfo.HapModuleInfo 模块信息。

PreloadItem

type PreloadItem = _HapModuleInfo.PreloadItem

原子化服务中模块的预加载模块信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_HapModuleInfo.PreloadItem 原子化服务中模块的预加载模块信息。

Dependency

type Dependency = _HapModuleInfo.Dependency

模块所依赖的动态共享库信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_HapModuleInfo.Dependency 模块所依赖的动态共享库信息。

RouterItem12+

type RouterItem = _HapModuleInfo.RouterItem

模块配置的路由表信息。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_HapModuleInfo.RouterItem 模块配置的路由表信息。

DataItem12+

type DataItem = _HapModuleInfo.DataItem

模块配置的路由表中的自定义数据。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_HapModuleInfo.DataItem 模块配置的路由表中的自定义数据。

AbilityInfo

type AbilityInfo = _AbilityInfo.AbilityInfo

Ability信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_AbilityInfo.AbilityInfo Ability信息。

WindowSize

type WindowSize = _AbilityInfo.WindowSize

窗口尺寸。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_AbilityInfo.WindowSize 窗口尺寸。

ExtensionAbilityInfo

type ExtensionAbilityInfo = _ExtensionAbilityInfo.ExtensionAbilityInfo

ExtensionAbility信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_ExtensionAbilityInfo.ExtensionAbilityInfo ExtensionAbility信息。

ElementName

type ElementName = _ElementName

ElementName信息。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_ElementName ElementName信息。

Skill12+

type Skill = _Skill.Skill

skill信息。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_Skill.Skill skill信息。

SkillUrl12+

type SkillUrl = _Skill.SkillUri

SkillUri信息。

原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_Skill.SkillUri SkillUri信息。

AppCloneIdentity15+

type AppCloneIdentity = _BundleInfo.AppCloneIdentity

描述应用包的身份信息。

系统能力: SystemCapability.BundleManager.BundleFramework.Core

类型 说明
_BundleInfo.AppCloneIdentity 应用包的身份信息。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit(程序框架服务)

harmony 鸿蒙AbilityBase

harmony 鸿蒙AbilityBase_Element

harmony 鸿蒙AbilityRuntime

harmony 鸿蒙bundle

harmony 鸿蒙OH_NativeBundle_ApplicationInfo

harmony 鸿蒙OH_NativeBundle_ElementName

harmony 鸿蒙ability_base_common.h

harmony 鸿蒙ability_runtime_common.h

harmony 鸿蒙application_context.h

0  赞