@ohos.bundle.bundleManager (bundleManager模块)

本模块提供应用信息查询能力。

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

导入模块

import bundleManager from '@ohos.bundle.bundleManager';

LaunchType

指示组件的启动方式。

系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。

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

BundleFlag20+

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

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

名称 说明 Android平台 iOS平台
GET_BUNDLE_INFO_DEFAULT20+ 0x00000000 用于获取默认bundleInfo,获取的bundleInfo不包含applicationInfo、hapModuleInfo、ability和permission的信息。 支持 支持
GET_BUNDLE_INFO_WITH_APPLICATION20+ 0x00000001 用于获取包含applicationInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、hapModuleInfo、ability、extensionAbility和permission的信息。 支持 支持
GET_BUNDLE_INFO_WITH_HAP_MODULE20+ 0x00000002 用于获取包含hapModuleInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability、extensionAbility和permission的信息。 支持 支持
GET_BUNDLE_INFO_WITH_ABILITY20+ 0x00000004 用于获取包含ability的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、extensionAbility和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。 支持 支持
GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION20+ 0x00000010 用于获取包含permission的bundleInfo。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、extensionAbility和ability的信息。 支持 支持
GET_BUNDLE_INFO_WITH_METADATA20+ 0x00000020 用于获取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一起使用。 支持 支持
GET_BUNDLE_INFO_WITH_DISABLE20+ 0x00000040 用于获取application被禁用的BundleInfo和被禁用的Ability信息。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。 支持 支持
GET_BUNDLE_INFO_WITH_SIGNATURE_INFO20+ 0x00000080 用于获取包含signatureInfo的bundleInfo。获取的bundleInfo不包含applicationInfo、hapModuleInfo、extensionAbility、ability和permission的信息。 支持 支持

PermissionGrantState20+

指示权限授予状态。

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

名称 说明 Android平台 iOS平台
PERMISSION_DENIED20+ -1 拒绝授予权限。 支持 支持
PERMISSION_GRANTED20+ 0 授予权限。 支持 支持

SupportWindowMode20+

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

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

名称 说明 Android平台 iOS平台
FULL_SCREEN20+ 0 窗口支持全屏显示。 支持 支持
SPLIT20+ 1 窗口支持分屏显示。 支持 支持
FLOATING20+ 2 支持窗口化显示。 支持 支持

DisplayOrientation20+

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

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

名称 说明 Android平台 iOS平台
UNSPECIFIED20+ 0 表示未定义方向模式,由系统判定。 支持 支持
LANDSCAPE20+ 1 表示横屏显示模式。 支持 支持
PORTRAIT20+ 2 表示竖屏显示模式。 支持 支持
FOLLOW_RECENT20+ 3 表示跟随上一个显示模式。 支持 支持
LANDSCAPE_INVERTED20+ 4 表示反向横屏显示模式。 支持 支持
PORTRAIT_INVERTED20+ 5 表示反向竖屏显示模式。 支持 支持
AUTO_ROTATION20+ 6 表示传感器自动旋转模式。 支持 支持
AUTO_ROTATION_LANDSCAPE20+ 7 表示传感器自动横向旋转模式。 支持 支持
AUTO_ROTATION_PORTRAIT20+ 8 表示传感器自动竖向旋转模式。 支持 支持
AUTO_ROTATION_RESTRICTED20+ 9 表示受开关控制的自动旋转模式。 支持 支持
AUTO_ROTATION_LANDSCAPE_RESTRICTED20+ 10 表述受开关控制的自动横向旋转模式。 支持 支持
AUTO_ROTATION_PORTRAIT_RESTRICTED20+ 11 表示受开关控制的自动竖向旋转模式。 支持 支持
LOCKED20+ 12 表示锁定模式。 支持 支持

ModuleType20+

标识模块类型。

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

名称 说明 Android平台 iOS平台
ENTRY20+ 1 应用的主模块。 支持 支持
FEATURE20+ 2 应用的动态特性模块。 支持 支持
SHARED20+ 3 应用的动态共享库模块。 支持 支持

bundleManager.getBundleInfoForSelf20+

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>

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

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

支持平台: Android、iOS

参数:

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

返回值:

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

错误码:

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

错误码ID 错误信息
401 Parameter 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.getBundleInfoForSelf20+

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

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

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

支持平台: Android、iOS

参数:

参数名 类型 必填 说明
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.

示例:

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

getBundleInfoForSelfSync(bundleFlags: number): BundleInfo

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

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

支持平台: Android、iOS

参数:

参数名 类型 必填 说明
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);
}

ApplicationInfo20+

type ApplicationInfo = _ApplicationInfo

应用程序信息。

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

支持平台: Android、iOS

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

ModuleMetadata20+

type ModuleMetadata = _ModuleMetadata

模块的元数据信息。

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

支持平台: Android、iOS

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

Metadata20+

type Metadata = _Metadata

元数据信息。

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

支持平台: Android、iOS

类型 说明
_Metadata 元数据信息。

BundleInfo20+

type BundleInfo = _BundleInfo.BundleInfo

应用包信息。

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

支持平台: Android、iOS

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

UsedScene20+

type UsedScene = _BundleInfo.UsedScene

权限使用的场景和时机。

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

支持平台: Android、iOS

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

ReqPermissionDetail20+

type ReqPermissionDetail = _BundleInfo.ReqPermissionDetail

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

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

支持平台: Android、iOS

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

SignatureInfo20+

type SignatureInfo = _BundleInfo.SignatureInfo

应用包的签名信息。

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

支持平台: Android、iOS

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

HapModuleInfo20+

type HapModuleInfo = _HapModuleInfo.HapModuleInfo

HAP信息。

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

支持平台: Android、iOS

类型 说明
_HapModuleInfo.HapModuleInfo HAP信息。

AbilityInfo20+

type AbilityInfo = _AbilityInfo.AbilityInfo

Ability信息。

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

支持平台: Android、iOS

类型 说明
_AbilityInfo.AbilityInfo Ability信息。

WindowSize20+

type WindowSize = _AbilityInfo.WindowSize

窗口尺寸。

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

支持平台: Android、iOS

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