鸿蒙5.0开发进阶:@ohos.bundle.bundleManager (bundleManager模块)

往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)


@ohos.bundle.bundleManager (bundleManager模块)

本模块提供应用信息查询能力,支持BundleInfoApplicationInfoAbilityInfoExtensionAbilityInfo等信息的查询。

说明

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

导入模块

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

枚举

BundleFlag

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

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

名称说明
GET_BUNDLE_INFO_DEFAULT0x00000000

用于获取默认bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。

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

GET_BUNDLE_INFO_WITH_APPLICATION0x00000001

用于获取包含applicationInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、hapModuleInfo、ability、extensionAbility和permission的信息。

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

GET_BUNDLE_INFO_WITH_HAP_MODULE0x00000002

用于获取包含hapModuleInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability、extensionAbility和permission的信息。

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

GET_BUNDLE_INFO_WITH_ABILITY0x00000004

用于获取包含ability的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、extensionAbility和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。

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

GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY0x00000008

用于获取包含extensionAbility的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability 和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。

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

GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION0x00000010

用于获取包含permission的bundleInfo。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、extensionAbility和ability的信息。

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

GET_BUNDLE_INFO_WITH_METADATA0x00000020

用于获取applicationInfo、moduleInfo和abilityInfo中包含的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_DISABLE0x00000040

用于获取application被禁用的BundleInfo和被禁用的Ability信息。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。

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

GET_BUNDLE_INFO_WITH_SIGNATURE_INFO0x00000080

用于获取包含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。

名称说明
FORM0

FormExtensionAbility:卡片扩展能力,提供卡片开发能力。

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

WORK_SCHEDULER1WorkSchedulerExtensionAbility:延时任务扩展能力,允许应用在系统闲时执行实时性不高的任务。
INPUT_METHOD2InputMethodExtensionAbility:输入法扩展能力,用于开发输入法应用。
SERVICE3ServiceExtensionAbility:后台服务扩展能力,提供后台运行并对外提供相应能力。
ACCESSIBILITY4AccessibilityExtensionAbility:无障碍服务扩展能力,支持访问与操作前台界面。
DATA_SHARE5DataShareExtensionAbility :数据共享扩展能力,用于对外提供数据读写服务。
FILE_SHARE6FileShareExtensionAbility:文件共享扩展能力,用于应用间的文件分享。预留能力,仅系统应用支持。
STATIC_SUBSCRIBER7StaticSubscriberExtensionAbility :静态广播扩展能力,用于处理静态事件,比如开机事件。
WALLPAPER8WallpaperExtensionAbility:壁纸扩展能力,用于实现桌面壁纸。预留能力,仅系统应用支持。
BACKUP9BackupExtensionAbility:数据备份扩展能力,提供应用数据的备份恢复能力。
WINDOW10WindowExtensionAbility:界面组合扩展能力,允许系统应用进行跨应用的界面拉起和嵌入。
ENTERPRISE_ADMIN11EnterpriseAdminExtensionAbility:企业设备管理扩展能力,提供企业管理时处理管理事件的能力,比如设备上应用安装事件、锁屏密码输入错误次数过多事件等。
THUMBNAIL13ThumbnailExtensionAbility:文件缩略图扩展能力,用于为文件提供图标缩略图的能力。预留能力,仅系统应用支持。
PREVIEW14PreviewExtensionAbility:文件预览扩展能力,提供文件预览的能力,其他应用可以直接在应用中嵌入显示。预留能力,仅系统应用支持。
PRINT10+15PrintExtensionAbility:文件打印扩展能力,提供应用打印照片、文档等办公场景。仅系统应用支持。
SHARE10+16ShareExtensionAbility:提供分享业务能力,为开发者提供基于UIExtension的分享业务模板。
PUSH10+17PushExtensionAbility:推送扩展能力,提供推送场景化消息能力。预留能力,仅系统应用支持。
DRIVER10+18DriverExtensionAbility:驱动扩展能力,提供外设驱动扩展能力,仅系统应用支持。
ACTION10+19ActionExtensionAbility:自定义服务扩展能力,为开发者提供基于UIExtension的自定义操作业务模板。
ADS_SERVICE11+20AdsServiceExtensionAbility:广告服务扩展能力,对外提供后台自定义广告业务服务,仅系统应用支持。
EMBEDDED_UI12+21EmbeddedUIExtensionAbility:嵌入式UI扩展能力,提供跨进程界面嵌入的能力。
INSIGHT_INTENT_UI12+22InsightIntentUIExtensionAbility:为开发者提供能被小艺意图调用,以窗口形态呈现内容的扩展能力。
UNSPECIFIED255不指定类型,配合queryExtensionAbilityInfo接口可以查询所有类型的ExtensionAbility。

PermissionGrantState

指示权限授予状态。

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

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

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

SupportWindowMode

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

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

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

名称说明
FULL_SCREEN0窗口支持全屏显示。
SPLIT1窗口支持分屏显示。
FLOATING2支持窗口化显示。

LaunchType

指示组件的启动方式。

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

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

名称说明
SINGLETON0ability的启动模式,表示单实例。
MULTITON1ability的启动模式,表示普通多实例。
SPECIFIED2ability的启动模式,表示该ability内部根据业务自己指定多实例。

AbilityType

指示Ability组件的类型。

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

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

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

DisplayOrientation

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

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

名称说明
UNSPECIFIED0

表示未定义方向模式,由系统判定。

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

LANDSCAPE1

表示横屏显示模式。

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

PORTRAIT2

表示竖屏显示模式。

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

FOLLOW_RECENT3

表示跟随上一个显示模式。

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

LANDSCAPE_INVERTED4

表示反向横屏显示模式。

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

PORTRAIT_INVERTED5

表示反向竖屏显示模式。

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

AUTO_ROTATION6

表示传感器自动旋转模式。

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

AUTO_ROTATION_LANDSCAPE7

表示传感器自动横向旋转模式。

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

AUTO_ROTATION_PORTRAIT8

表示传感器自动竖向旋转模式。

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

AUTO_ROTATION_RESTRICTED9

表示受开关控制的自动旋转模式。

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

AUTO_ROTATION_LANDSCAPE_RESTRICTED10

表述受开关控制的自动横向旋转模式。

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

AUTO_ROTATION_PORTRAIT_RESTRICTED11

表示受开关控制的自动竖向旋转模式。

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

LOCKED12

表示锁定模式。

元服务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_COMPATIBILITY1该字段表明共享库是向后兼容类型。

ModuleType

标识模块类型。

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

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

名称说明
ENTRY1应用的主模块。
FEATURE2应用的动态特性模块。
SHARED3应用的动态共享库模块。

BundleType

标识应用的类型。

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

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

名称说明
APP0该Bundle是应用。
ATOMIC_SERVICE1该Bundle是元服务。

MultiAppModeType12+

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

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

名称说明
UNSPECIFIED0未指定类型。
MULTI_INSTANCE1多实例模式。
APP_CLONE2分身模式。

接口

bundleManager.getBundleInfoForSelf

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>

以异步方法根据给定的bundleFlags获取当前应用的BundleInfo,使用Promise形式返回结果。

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

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

示例:

// 额外获取带有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

参数:

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

错误码:

以下错误码的详细介绍。

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

示例:

// 额外获取带有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.json中metadata标签下的name)获取相应配置文件的json格式字符串,使用callback形式返回结果。

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

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

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

参数:

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

错误码:

以下错误码的详细介绍。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002The specified moduleName is not existed.
17700003The specified abilityName is not existed.
17700024Failed to get the profile because there is no profile in the HAP.
17700026The specified bundle is disabled.
17700029The 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.json中metadata标签下的name)获取相应配置文件的json格式字符串,使用Promise形式返回结果。

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

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002The specified moduleName is not existed.
17700003The specified abilityName is not existed.
17700024Failed to get the profile because there is no profile in the HAP.
17700026The specified bundle is disabled.
17700029The 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 {
  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 {
  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.json中metadata标签下的name)获取相应配置文件的json格式字符串,返回对象为string数组。

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

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700002The specified moduleName is not existed.
17700003The specified abilityName is not existed.
17700024Failed to get the profile because there is no profile in the HAP.
17700026The specified bundle is disabled.
17700029The 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 {
  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 {
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.json中metadata标签下的name)获取相应配置文件的json格式字符串,使用callback形式返回结果。

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

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

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

参数:

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

错误码:

以下错误码的详细介绍。

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

示例:

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.json中metadata标签下的name)获取相应配置文件的json格式字符串,使用Promise形式返回结果。

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

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

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

示例:

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.json中metadata标签下的name)获取相应配置文件的json格式字符串,返回对象为string数组。

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

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

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

示例:

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

参数:

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

返回值:

类型说明
BundleInfo返回BundleInfo对象。

错误码:

以下错误码的详细介绍。

错误码ID错误信息
401Parameter 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.json文件的querySchemes字段下配置。

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

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍。

错误码ID错误信息
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700055The specified link is invalid.
17700056The 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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值