@ohos.bundle.bundleManager (应用程序包管理模块)(系统接口)

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

说明:

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

当前页面仅包含本模块的系统接口,其他公开接口参见应用程序包管理模块

导入模块

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

BundleFlag

包信息标志,指示需要获取的包信息的内容,当前页面仅包含本模块的系统接口,其他公开类型参见BundleFlag

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

名称 说明
GET_BUNDLE_INFO_ONLY_WITH_LAUNCHER_ABILITY12+ 0x00001000 用于获取仅包含有桌面图标的应用的bundleInfo。它仅在getAllBundleInfo接口中生效。
系统API: 该标记仅支持在系统API中使用。
GET_BUNDLE_INFO_OF_ANY_USER12+ 0x00002000 用于获取任意用户安装的bundleInfo。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_APPLICATION一起使用。它仅在getBundleInfogetAllBundleInfo接口生效。
系统API: 该标记仅支持在系统API中使用。
GET_BUNDLE_INFO_EXCLUDE_CLONE12+ 0x00004000 用于获取去除分身应用而仅包含主应用的bundleInfo。它仅在getAllBundleInfo接口中生效。
系统API: 该标记仅支持在系统API中使用。
GET_BUNDLE_INFO_WITH_CLOUD_KIT20+ 0x00008000 用于获取启用端云文件同步能力或者端云结构化数据同步能力的应用的bundleInfo。它仅在getAllBundleInfo接口中生效。
系统API: 该标记仅支持在系统API中使用。

ApplicationFlag

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

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

系统接口: 此接口为系统接口。

名称 说明
GET_APPLICATION_INFO_DEFAULT 0x00000000 用于获取默认的applicationInfo,获取的applicationInfo不包含permission和metadata信息。
GET_APPLICATION_INFO_WITH_PERMISSION 0x00000001 用于获取包含permission的applicationInfo。
GET_APPLICATION_INFO_WITH_METADATA 0x00000002 用于获取包含metadata的applicationInfo。
GET_APPLICATION_INFO_WITH_DISABLE 0x00000004 用于获取包含禁用应用程序的applicationInfo。

AbilityFlag

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

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

系统接口: 此接口为系统接口。

名称 说明
GET_ABILITY_INFO_DEFAULT 0x00000000 用于获取默认abilityInfo,获取的abilityInfo不包含permission、metadata和禁用的abilityInfo。
GET_ABILITY_INFO_WITH_PERMISSION 0x00000001 用于获取包含permission的abilityInfo。
GET_ABILITY_INFO_WITH_APPLICATION 0x00000002 用于获取包含applicationInfo的abilityInfo。
GET_ABILITY_INFO_WITH_METADATA 0x00000004 用于获取包含metadata的abilityInfo。
GET_ABILITY_INFO_WITH_DISABLE 0x00000008 用于获取包含禁用的abilityInfo的abilityInfo。
GET_ABILITY_INFO_ONLY_SYSTEM_APP 0x00000010 用于仅为系统应用程序获取abilityInfo。
GET_ABILITY_INFO_WITH_APP_LINKING12+ 0x00000040 用于获取通过域名校验筛选的abilityInfo。
GET_ABILITY_INFO_WITH_SKILL12+ 0x00000080 用于获取包含skills的abilityInfo。

ExtensionAbilityFlag

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

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

系统接口: 此接口为系统接口。

名称 说明
GET_EXTENSION_ABILITY_INFO_DEFAULT 0x00000000 用于获取默认extensionAbilityInfo。获取的extensionAbilityInfo不包含permission、metadata 和禁用的extensionAbilityInfo。
GET_EXTENSION_ABILITY_INFO_WITH_PERMISSION 0x00000001 用于获取包含permission的extensionAbilityInfo。
GET_EXTENSION_ABILITY_INFO_WITH_APPLICATION 0x00000002 用于获取包含applicationInfo的extensionAbilityInfo。
GET_EXTENSION_ABILITY_INFO_WITH_METADATA 0x00000004 用于获取包含metadata的extensionAbilityInfo。
GET_EXTENSION_ABILITY_INFO_WITH_SKILL12+ 0x00000010 用于获取包含skills的extensionAbilityInfo。

ProfileType11+

标识配置文件类型。

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

系统接口: 此接口为系统接口。

名称 说明
INTENT_PROFILE 1 意图框架配置文件。
CLOUD_PROFILE 8 端云同步配置文件。起始版本:26.0.0

AppDistributionType12+

标识应用HarmonyAppProvision配置文件说明

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

系统接口: 此接口为系统接口。

名称 说明
APP_GALLERY 1 应用市场安装的应用。
ENTERPRISE 2 企业应用,可以安装到个人设备上。
ENTERPRISE_NORMAL 3 普通企业应用,只能通过企业MDM应用安装在企业设备上。
ENTERPRISE_MDM 4 企业MDM应用,只能安装在企业设备上。需要被激活adminManager.enableAdmin后,才能安装普通企业应用。
OS_INTEGRATION 5 系统预置应用。
CROWDTESTING 6 众包测试应用,是由应用市场分发给部分用户,有一定的有效期的特定应用,系统检测到应用的有效期到期后,会通知用户到应用市场更新release版本的应用。
NONE 7 其他。

ApplicationInfoFlag12+

标识应用和用户之间的各种状态类型。

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

系统接口: 此接口为系统接口。

名称 说明
FLAG_INSTALLED 0x00000001 表示指定用户安装应用的状态为已安装状态。
FLAG_OTHER_INSTALLED15+ 0x00000010 表示除指定用户外,其他用户的应用安装状态为已安装。
FLAG_PREINSTALLED_APP15+ 0x00000020 表示应用的预置属性为预置应用。
FLAG_PREINSTALLED_APP_UPDATE15+ 0x00000040 表示该预置应用的更新状态为已更新。

BundleInstallStatus23+

标识应用的安装状态。

系统接口: 此接口为系统接口。

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

名称 说明
BUNDLE_NOT_EXIST 1 应用未安装。
BUNDLE_INSTALLING 2 应用正在安装。
BUNDLE_INSTALLED 3 应用已安装完成。

bundleManager.getApplicationInfo

getApplicationInfo(bundleName: string, appFlags: number, userId: number, callback: AsyncCallback<ApplicationInfo>): void

根据给定的bundleName、appFlags和userId获取ApplicationInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
appFlags number 指定返回的ApplicationInfo所包含的信息,具体取值及不同含义参考ApplicationFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<ApplicationInfo> AsyncCallback,当获取成功时,err为undefined,data为获取到的ApplicationInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;
let userId = 100;

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

bundleManager.getApplicationInfo

getApplicationInfo(bundleName: string, appFlags: number, callback: AsyncCallback<ApplicationInfo>): void

根据给定的bundleName和appFlags获取ApplicationInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
appFlags number 指定返回的ApplicationInfo所包含的信息,具体取值及不同含义参考ApplicationFlag
callback AsyncCallback<ApplicationInfo> AsyncCallback,当获取成功时,err为undefined,data为获取到的ApplicationInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_WITH_PERMISSION;

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

bundleManager.getApplicationInfo

getApplicationInfo(bundleName: string, appFlags: number, userId?: number): Promise<ApplicationInfo>

根据给定的bundleName、appFlags和userId获取ApplicationInfo。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_WITH_PERMISSION;
let userId = 100;

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

bundleManager.getAllBundleInfo

getAllBundleInfo(bundleFlags: number, userId: number, callback: AsyncCallback<Array<BundleInfo>>): void

根据给定的bundleFlags和userId获取系统中所有的BundleInfo。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

参数名 类型 必填 说明
bundleFlags number 指定返回的BundleInfo所包含的信息。
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<Array<BundleInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<BundleInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700004 The specified user ID is not found.

示例:

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;
let userId = 100;

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

bundleManager.getAllBundleInfo

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

根据给定的bundleFlags获取系统中所有的BundleInfo。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

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

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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_DEFAULT;

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

bundleManager.getAllBundleInfo

getAllBundleInfo(bundleFlags: number, userId?: number): Promise<Array<BundleInfo>>

根据给定的bundleFlags和userId获取系统中所有的BundleInfo。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

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

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700004 The specified user ID is not found.

示例:

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

let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;

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

bundleManager.getAllApplicationInfo

getAllApplicationInfo(appFlags: number, userId: number, callback: AsyncCallback<Array<ApplicationInfo>>): void

根据给定的appFlags和userId获取系统中所有的ApplicationInfo。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

参数名 类型 必填 说明
appFlags number 指定返回的ApplicationInfo所包含的信息,具体取值及不同含义参考ApplicationFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<Array<ApplicationInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<ApplicationInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700004 The specified user ID is not found.

示例:

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

let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;
let userId = 100;

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

bundleManager.getAllApplicationInfo

getAllApplicationInfo(appFlags: number, callback: AsyncCallback<Array<ApplicationInfo>>): void

根据给定的appFlags获取系统中所有的ApplicationInfo。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

参数名 类型 必填 说明
appFlags number 指定返回的ApplicationInfo所包含的信息,具体取值及不同含义参考ApplicationFlag
callback AsyncCallback<Array<ApplicationInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<ApplicationInfo>;否则为错误对象。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;

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

bundleManager.getAllApplicationInfo

getAllApplicationInfo(appFlags: number, userId?: number): Promise<Array<ApplicationInfo>>

根据给定的appFlags和userId获取系统中所有的ApplicationInfo。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

参数:

参数名 类型 必填 说明
appFlags number 指定返回的ApplicationInfo所包含的信息,具体取值及不同含义参考ApplicationFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700004 The specified user ID is not found.

示例:

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

let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;

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

bundleManager.queryAbilityInfo

queryAbilityInfo(want: Want, abilityFlags: number, userId: number, callback: AsyncCallback<Array<AbilityInfo>>): void

根据给定的want、abilityFlags和userId获取多个AbilityInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
abilityFlags number 指定返回的AbilityInfo所包含的信息,具体取值及不同含义参考AbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<Array<AbilityInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<AbilityInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified ability is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryAbilityInfo

queryAbilityInfo(want: Want, abilityFlags: number, callback: AsyncCallback<Array<AbilityInfo>>): void

根据给定的want和abilityFlags获取一个或多个AbilityInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
abilityFlags number 指定返回的AbilityInfo所包含的信息,具体取值及不同含义参考AbilityFlag
callback AsyncCallback<Array<AbilityInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<AbilityInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified ability is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryAbilityInfo

queryAbilityInfo(want: Want, abilityFlags: number, userId?: number): Promise<Array<AbilityInfo>>

根据给定的want、abilityFlags和userId获取一个或多个AbilityInfo。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
abilityFlags number 表示指定返回的AbilityInfo所包含的信息,具体取值及不同含义参考AbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified ability is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryAbilityInfoSync10+

queryAbilityInfoSync(want: Want, abilityFlags: number, userId?: number): Array<AbilityInfo>

以同步方法根据给定的want、abilityFlags和userId获取一个或多个AbilityInfo。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
abilityFlags number 表示指定返回的AbilityInfo所包含的信息,具体取值及不同含义参考AbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Array<AbilityInfo> Array<AbilityInfo>信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified ability is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {

  let infos = bundleManager.queryAbilityInfoSync(want, abilityFlags, userId);
  hilog.info(0x0000, 'testTag', 'queryAbilityInfoSync successfully. Data: %{public}s', JSON.stringify(infos));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfoSync failed. Cause: %{public}s', message);
}
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { Want } from '@kit.AbilityKit';

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryAbilityInfo12+

queryAbilityInfo(wants: Array<Want>, abilityFlags: number, userId?: number): Promise<Array<AbilityInfo>>

根据给定的want列表、abilityFlags和userId获取一个或多个AbilityInfo。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Array<Want> 表示包含要查询的应用Bundle名称的Want集合。
abilityFlags number 表示指定返回的AbilityInfo所包含的信息,具体取值及不同含义参考AbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Promise<Array<AbilityInfo>> Promise对象,返回Array<AbilityInfo>信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified ability is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication1",
  abilityName: "EntryAbility"
};
let want1: Want = {
  bundleName: "com.example.myapplication2",
  abilityName: "EntryAbility"
};
let wants: Array<Want> = [want, want1];
try {
  bundleManager.queryAbilityInfo(wants, abilityFlags, userId).then((data) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(data));
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message);
  })
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', message);
}

bundleManager.queryExtensionAbilityInfo

queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, extensionAbilityFlags: number, userId: number, callback: AsyncCallback<Array<ExtensionAbilityInfo>>): void

根据给定的want、extensionAbilityType、extensionAbilityFlags和userId获取一个或多个ExtensionAbilityInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
extensionAbilityType ExtensionAbilityType 标识extensionAbility的类型。
extensionAbilityFlags number 表示用于指定将返回的ExtensionInfo对象中包含的信息的标志,具体取值及不同含义参考ExtensionAbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<Array<ExtensionAbilityInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到Array<ExtensionAbilityInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified extensionAbility is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.

示例:

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

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryExtensionAbilityInfo

queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, extensionAbilityFlags: number, callback: AsyncCallback<Array<ExtensionAbilityInfo>>): void

根据给定的want、extensionAbilityType和extensionAbilityFlags获取一个或多个ExtensionAbilityInfo。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
extensionAbilityType ExtensionAbilityType 标识extensionAbility的类型。
extensionAbilityFlags number 表示用于指定将返回的ExtensionInfo对象中包含的信息的标志,具体取值及不同含义参考ExtensionAbilityFlag
callback AsyncCallback<Array<ExtensionAbilityInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到Array<ExtensionAbilityInfo>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified extensionAbility is not found.
17700026 The specified bundle is disabled.

示例:

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

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryExtensionAbilityInfo

queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, extensionAbilityFlags: number, userId?: number): Promise<Array<ExtensionAbilityInfo>>

根据给定的want、extensionAbilityType、extensionAbilityFlags和userId获取ExtensionAbilityInfo。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
extensionAbilityType ExtensionAbilityType 标识extensionAbility的类型。
extensionAbilityFlags number 表示用于指定将返回的ExtensionInfo对象中包含的信息的标志,具体取值及不同含义参考ExtensionAbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified extensionAbility is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.

示例:

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

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.queryExtensionAbilityInfoSync10+

queryExtensionAbilityInfoSync(want: Want, extensionAbilityType: ExtensionAbilityType, extensionAbilityFlags: number, userId?: number): Array<ExtensionAbilityInfo>

以同步方法根据给定的want、extensionAbilityType、extensionAbilityFlags和userId获取ExtensionAbilityInfo。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
extensionAbilityType ExtensionAbilityType 标识extensionAbility的类型。
extensionAbilityFlags number 表示用于指定将返回的ExtensionInfo对象中包含的信息的标志,具体取值及不同含义参考ExtensionAbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Array<ExtensionAbilityInfo> Array<ExtensionAbilityInfo>信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified extensionAbility is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.

示例:

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

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  let extensionAbilityInfos = bundleManager.queryExtensionAbilityInfoSync(want, extensionAbilityType, extensionFlags, userId);
  hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfoSync successfully. Data: %{public}s',
    JSON.stringify(extensionAbilityInfos));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfoSync failed. Cause: %{public}s', message);
}
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { Want } from '@kit.AbilityKit';

let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM;
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  let extensionAbilityInfos = bundleManager.queryExtensionAbilityInfoSync(want, extensionAbilityType, extensionFlags);
  hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfoSync successfully. Data: %{public}s',
    JSON.stringify(extensionAbilityInfos));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfoSync failed. Cause: %{public}s', message);
}

bundleManager.getBundleArchiveInfo

getBundleArchiveInfo(hapFilePath: string, bundleFlags: number, callback: AsyncCallback<BundleInfo>): void

根据给定的hapFilePath和bundleFlags获取BundleInfo。使用callback异步回调。从API版本26.0.0开始,该接口支持处理APP包。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
hapFilePath string 表示存储HAP或APP的路径,路径应该是当前应用程序数据目录的相对路径。
bundleFlags number 表示用于指定要返回的BundleInfo对象中包含的信息的标志。
callback AsyncCallback<BundleInfo> AsyncCallback,当获取成功时,err为undefined,data为获取到的BundleInfo;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700022 The hapFilePath is invalid.

示例:

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

let hapFilePath = "/data/xxx/test.hap";
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;

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

bundleManager.getBundleArchiveInfo

getBundleArchiveInfo(hapFilePath: string, bundleFlags: number): Promise<BundleInfo>

根据给定的hapFilePath和bundleFlags获取BundleInfo。使用Promise异步回调。从API版本26.0.0开始,该接口支持处理APP包。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
hapFilePath string 表示存储HAP或APP的路径,路径应该是当前应用程序数据目录的相对路径。
bundleFlags number 表示用于指定要返回的BundleInfo对象中包含的信息的标志。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700022 The hapFilePath is invalid.

示例:

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

let hapFilePath = "/data/xxx/test.hap";
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;

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

bundleManager.getBundleArchiveInfoSync10+

getBundleArchiveInfoSync(hapFilePath: string, bundleFlags: number): BundleInfo

以同步方法根据给定的hapFilePath和bundleFlags获取BundleInfo对象。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
hapFilePath string 表示存储HAP的路径,路径应该是当前应用程序数据目录的相对路径。
bundleFlags number 表示用于指定要返回的BundleInfo对象中包含的信息的标志。

返回值:

类型 说明
BundleInfo 返回BundleInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700022 The hapFilePath is invalid.

示例:

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

let hapFilePath = "/data/xxx/test.hap";
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;

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

bundleManager.getAllBundleCacheSize15+

getAllBundleCacheSize(): Promise<number>

获取全局缓存大小,单位:字节。使用Promise异步回调。

有程序运行时的应用的缓存、或者在应用配置指南中已配置“AllowAppDataNotCleared”特权的应用的缓存,无法被获取。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

返回值:

类型 说明
Promise<number> Promise对象。返回全局缓存大小,以字节为单位。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.cleanAllBundleCache15+

cleanAllBundleCache(): Promise<void>

清理全局缓存。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.REMOVE_CACHE_FILES

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

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

try {
  bundleManager.cleanAllBundleCache().then((data) => {
    hilog.info(0x0000, 'testTag', 'cleanAllBundleCache successful.');
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'cleanAllBundleCache failed: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'cleanAllBundleCache failed: %{public}s', message);
}

bundleManager.cleanBundleCacheFiles

cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback<void>): void

根据给定的bundleName清理BundleCache。使用callback异步回调。

调用方清理自身缓存数据时不需要权限。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.REMOVE_CACHE_FILES

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

参数:

参数名 类型 必填 说明
bundleName string 表示要清理其缓存数据的应用程序的bundleName。
callback AsyncCallback<void> AsyncCallback,当清理应用缓存目录数据成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700030 The specified bundle does not support clearing of cache files.

示例:

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

let bundleName = "com.ohos.myapplication";

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

bundleManager.cleanBundleCacheFiles

cleanBundleCacheFiles(bundleName: string): Promise<void>

根据给定的bundleName清理BundleCache。使用Promise异步回调。

调用方清理自身缓存数据时不需要权限。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.REMOVE_CACHE_FILES

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

参数:

参数名 类型 必填 说明
bundleName string 表示要清理其缓存数据的应用程序的bundleName。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700030 The specified bundle does not support clearing of cache files.

示例:

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

let bundleName = "com.ohos.myapplication";

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

bundleManager.cleanBundleCacheFiles15+

cleanBundleCacheFiles(bundleName: string, appIndex: number): Promise<void>

根据给定的bundleName和appIndex清理BundleCache。使用Promise异步回调。

调用方清理自身缓存数据时不需要权限。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.REMOVE_CACHE_FILES

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

参数:

参数名 类型 必填 说明
bundleName string 表示要清理其缓存数据的应用程序的bundleName。
appIndex number 表示要清理其缓存数据的应用程序的分身应用索引。
appIndex为0时,表示清理主应用缓存数据。appIndex大于0时,表示清理指定分身应用缓存数据。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700030 The specified bundle does not support clearing of cache files.
17700061 AppIndex not in valid range.

示例:

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

let bundleName = "com.ohos.myapplication";
let appIndex = 1;

try {
  bundleManager.cleanBundleCacheFiles(bundleName, appIndex).then(() => {
    hilog.info(0x0000, 'testTag', 'cleanBundleCacheFiles successfully.');
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', message);
}

bundleManager.setApplicationEnabled

setApplicationEnabled(bundleName: string, isEnabled: boolean, callback: AsyncCallback<void>): void

设置指定应用的禁用或使能状态。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的bundleName。
isEnabled boolean 值为true表示使能,值为false表示禁用。
callback AsyncCallback<void> AsyncCallback,当设置应用禁用或使能状态成功时,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.ohos.myapplication";

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

bundleManager.setApplicationEnabled

setApplicationEnabled(bundleName: string, isEnabled: boolean): Promise<void>

设置指定应用的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
isEnabled boolean 值为true表示使能,值为false表示禁用。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.ohos.myapplication";

try {
  bundleManager.setApplicationEnabled(bundleName, false).then(() => {
    hilog.info(0x0000, "testTag", "setApplicationEnabled successfully.");
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', message);
}

bundleManager.setApplicationEnabled12+

setApplicationEnabled(bundleName: string, appIndex: number, isEnabled: boolean): Promise<void>

设置指定应用或分身应用的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
appIndex number 表示分身应用的索引。
appIndex为0时,表示设置主应用的禁用或使能状态。appIndex大于0时,表示设置指定分身应用的禁用或使能状态。
isEnabled boolean 值为true表示使能,值为false表示禁用。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700061 AppIndex not in valid range.

示例:

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

let bundleName = "com.ohos.myapplication";

try {
  bundleManager.setApplicationEnabled(bundleName, 1, false).then(() => {
    hilog.info(0x0000, "testTag", "setApplicationEnabled successfully.");
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', message);
}

bundleManager.setApplicationEnabledSync10+

setApplicationEnabledSync(bundleName: string, isEnabled: boolean): void

以同步方法设置指定应用的禁用或使能状态。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的bundleName。
isEnabled boolean 值为true表示使能,值为false表示禁用。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.ohos.myapplication";

try {
  bundleManager.setApplicationEnabledSync(bundleName, false);
  hilog.info(0x0000, 'testTag', 'setApplicationEnabledSync successfully.');
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setApplicationEnabledSync failed: %{public}s', message);
}

bundleManager.setAbilityEnabled

setAbilityEnabled(info: AbilityInfo, isEnabled: boolean, callback: AsyncCallback<void>): void

设置指定组件的禁用或使能状态。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
info AbilityInfo 需要被设置的组件。
isEnabled boolean 值为true表示使能,值为false表示禁用。
callback AsyncCallback<void> AsyncCallback,当设置组件禁用或使能状态成功时,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityInfo is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

    bundleManager.setAbilityEnabled(info, false, err => {
      if (err) {
        hilog.error(0x0000, 'testTag', 'setAbilityEnabled failed: %{public}s', err.message);
      } else {
        hilog.info(0x0000, "testTag", "setAbilityEnabled successfully.");
      }
    });
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', message);
}

bundleManager.setAbilityEnabled

setAbilityEnabled(info: AbilityInfo, isEnabled: boolean): Promise<void>

设置指定组件的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
info AbilityInfo 需要被设置的组件。
isEnabled boolean 值为true表示使能,值为false表示禁用。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityInfo is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

    bundleManager.setAbilityEnabled(info, false).then(() => {
      hilog.info(0x0000, "testTag", "setAbilityEnabled successfully.");
    }).catch((err: BusinessError) => {
      hilog.error(0x0000, 'testTag', 'setAbilityEnabled failed: %{public}s', err.message);
    });
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', message);
}

bundleManager.setAbilityEnabled12+

setAbilityEnabled(info: AbilityInfo, appIndex: number, isEnabled: boolean): Promise<void>

设置指定应用或分身应用组件的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
info AbilityInfo 需要被设置的组件。
appIndex number 表示分身应用的索引。
appIndex为0时,表示设置主应用组件的禁用或使能状态。appIndex大于0时,表示设置指定分身应用组件的禁用或使能状态。
isEnabled boolean 值为true表示使能,值为false表示禁用。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityInfo is not found.
17700061 AppIndex not in valid range.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

    bundleManager.setAbilityEnabled(info, 1, false).then(() => {
      hilog.info(0x0000, "testTag", "setAbilityEnabled successfully.");
    }).catch((err: BusinessError) => {
      hilog.error(0x0000, 'testTag', 'setAbilityEnabled failed: %{public}s', err.message);
    });
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', message);
}

bundleManager.setAbilityEnabledSync10+

setAbilityEnabledSync(info: AbilityInfo, isEnabled: boolean): void

以同步方法设置指定组件的禁用或使能状态。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

参数:

参数名 类型 必填 说明
info AbilityInfo 需要被设置的组件。
isEnabled boolean 值为true表示使能,值为false表示禁用。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityInfo is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

    try {
      bundleManager.setAbilityEnabledSync(info, false);
      hilog.info(0x0000, "testTag", "setAbilityEnabledSync successfully.");
    } catch (err) {
      let message = (err as BusinessError).message;
      hilog.error(0x0000, 'testTag', 'setAbilityEnabledSync failed: %{public}s', message);
    }
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', message);
}

bundleManager.isApplicationEnabled

isApplicationEnabled(bundleName: string, callback: AsyncCallback<boolean>): void

获取指定应用的禁用或使能状态。使用callback异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
callback AsyncCallback<boolean> AsyncCallback,返回true表示当前应用为使能状态,返回false表示应用为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = 'com.example.myapplication';

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

bundleManager.isApplicationEnabled

isApplicationEnabled(bundleName: string): Promise<boolean>

获取指定应用的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。

返回值:

类型 说明
Promise<boolean> Promise对象,返回true表示当前应用为使能状态,返回false表示当前应用为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = 'com.example.myapplication';

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

bundleManager.isApplicationEnabled12+

isApplicationEnabled(bundleName: string, appIndex: number): Promise<boolean>

获取指定应用或分身应用的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
appIndex number 表示分身应用的索引。
appIndex为0时,表示获取主应用的禁用或使能状态。appIndex大于0时,表示获取指定分身应用的禁用或使能状态。

返回值:

类型 说明
Promise<boolean> Promise对象,返回true表示当前应用为使能状态,返回false表示当前应用为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700061 AppIndex not in valid range.

示例:

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

let bundleName = 'com.example.myapplication';

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

bundleManager.isApplicationEnabledSync10+

isApplicationEnabledSync(bundleName: string): boolean

以同步方法获取指定应用的禁用或使能状态。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。

返回值:

类型 说明
boolean 返回true表示当前应用为使能状态,返回false表示当前应用为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = 'com.example.myapplication';

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

bundleManager.isAbilityEnabled

isAbilityEnabled(info: AbilityInfo, callback: AsyncCallback<boolean>): void

获取指定组件的禁用或使能状态。使用callback异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
info AbilityInfo 表示关于检查ability的信息。
callback AsyncCallback<boolean> AsyncCallback,返回true表示当前应用组件为使能状态,返回false表示应用组件为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityName is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

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

bundleManager.isAbilityEnabled

isAbilityEnabled(info: AbilityInfo): Promise<boolean>

获取指定组件的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
info AbilityInfo 表示关于检查ability的信息。

返回值:

类型 说明
Promise<boolean> Promise对象,返回true表示当前应用组件为使能状态,返回false表示当前应用组件为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityName is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

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

bundleManager.isAbilityEnabled12+

isAbilityEnabled(info: AbilityInfo, appIndex: number): Promise<boolean>

获取应用或指定分身应用组件的禁用或使能状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
info AbilityInfo 表示关于检查ability的信息。
appIndex number 表示分身应用的索引。
appIndex为0时,表示获取主应用组件的禁用或使能状态。appIndex大于0时,表示获取指定分身应用组件的禁用或使能状态。

返回值:

类型 说明
Promise<boolean> Promise对象,返回true表示当前应用组件为使能状态,返回false表示当前应用组件为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityName is not found.
17700061 AppIndex not in valid range.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

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

bundleManager.isAbilityEnabledSync10+

isAbilityEnabledSync(info: AbilityInfo): boolean

以同步方法获取指定组件的禁用或使能状态。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
info AbilityInfo 表示关于检查ability的信息。

返回值:

类型 说明
boolean 返回true表示当前应用组件为使能状态,返回false表示当前应用组件为禁用状态。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700003 The specified abilityName is not found.

示例:

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

let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

try {
  bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => {
    hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo));
    let info = abilitiesInfo[0];

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

bundleManager.getLaunchWantForBundle

getLaunchWantForBundle(bundleName: string, userId: number, callback: AsyncCallback<Want>): void

根据给定的bundleName和userId获取用于启动应用程序的Want参数。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<Want> AsyncCallback,当获取成功时,err为undefined,data为获取到的Want;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Calling interface without permission 'ohos.permission.GET_BUNDLE_INFO_PRIVILEGED'.
202 Permission denied, non-system app called system api.
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 userId = 100;

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

bundleManager.getLaunchWantForBundle

getLaunchWantForBundle(bundleName: string, callback: AsyncCallback<Want>): void

根据给定的bundleName获取用于启动应用程序的Want参数。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
callback AsyncCallback<Want> AsyncCallback,当获取成功时,err为undefined,data为获取到的Want;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Calling interface without permission 'ohos.permission.GET_BUNDLE_INFO_PRIVILEGED'.
202 Permission denied, non-system app called system api.
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';

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

bundleManager.getLaunchWantForBundle

getLaunchWantForBundle(bundleName: string, userId?: number): Promise<Want>

根据给定的bundleName和userId获取用于启动应用程序的Want参数。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Calling interface without permission 'ohos.permission.GET_BUNDLE_INFO_PRIVILEGED'.
202 Permission denied, non-system app called system api.
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 userId = 100;

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

bundleManager.getPermissionDef

getPermissionDef(permissionName: string, callback: AsyncCallback<PermissionDef>): void

根据给定的permissionName获取权限定义结构体PermissionDef信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
permissionName string 表示权限名称。
callback AsyncCallback<PermissionDef> AsyncCallback,当获取成功时,err为undefined,data为获取到的Array<PermissionDef>;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700006 The specified permission is not found.

示例:

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

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

bundleManager.getPermissionDef

getPermissionDef(permissionName: string): Promise<PermissionDef>

根据给定的permissionName获取权限定义结构体PermissionDef信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
permissionName string 表示权限参数名。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700006 The specified permission is not found.

示例:

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

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

bundleManager.getPermissionDefSync10+

getPermissionDefSync(permissionName: string): PermissionDef;

以同步方法根据给定的permissionName获取权限定义结构体PermissionDef信息。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
permissionName string 表示权限参数名。

返回值:

类型 说明
PermissionDef PermissionDef对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700006 The specified permission is not found.

示例:

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

let permissionName = "ohos.permission.GET_BUNDLE_INFO";
try {
  let PermissionDef = bundleManager.getPermissionDefSync(permissionName);
  hilog.info(0x0000, 'testTag', 'getPermissionDefSync successfully. Data: %{public}s', JSON.stringify(PermissionDef));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getPermissionDefSync failed. Cause: %{public}s', message);
}

bundleManager.getAbilityLabel

getAbilityLabel(bundleName: string, moduleName: string, abilityName: string, callback: AsyncCallback<string>): void

获取指定bundleName、moduleName和abilityName的label。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。
callback AsyncCallback<string> AsyncCallback,当获取成功时,err为undefined,data为获指定组件的Label值;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700003 The specified abilityName is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'entry';
let abilityName = 'EntryAbility';

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

bundleManager.getAbilityLabel

getAbilityLabel(bundleName: string, moduleName: string, abilityName: string): Promise<string>

获取指定bundleName、moduleName和abilityName的label。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。

返回值:

类型 说明
Promise<string> Promise对象,返回指定组件的label值。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700003 The specified abilityName is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'entry';
let abilityName = 'EntryAbility';

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

bundleManager.getAbilityLabelSync10+

getAbilityLabelSync(bundleName: string, moduleName: string, abilityName: string): string

以同步的方法获取指定bundleName、moduleName和abilityName的label。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
moduleName string 表示Module名称。
abilityName string 表示UIAbility组件的名称。

返回值:

类型 说明
string 指定组件的label值。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
801 Capability not supported.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700003 The specified abilityName is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'entry';
let abilityName = 'EntryAbility';

try {
  let abilityLabel = bundleManager.getAbilityLabelSync(bundleName, moduleName, abilityName);
  hilog.info(0x0000, 'testTag', 'getAbilityLabelSync successfully. Data: %{public}s', abilityLabel);
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAbilityLabelSync failed. Cause: %{public}s', message);
}

bundleManager.getApplicationInfoSync

getApplicationInfoSync(bundleName: string, applicationFlags: number, userId: number) : ApplicationInfo

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

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
applicationFlags number 表示用于指定将返回的ApplicationInfo对象中包含的信息,具体取值及不同含义参考ApplicationFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取。

返回值:

类型 说明
ApplicationInfo 返回ApplicationInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 applicationFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;
let userId = 100;

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

bundleManager.getApplicationInfoSync

getApplicationInfoSync(bundleName: string, applicationFlags: number) : ApplicationInfo

以同步方法根据给定的bundleName、applicationFlags获取ApplicationInfo。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
applicationFlags number 表示用于指定将返回的ApplicationInfo对象中包含的信息,具体取值及不同含义参考ApplicationFlag

返回值:

类型 说明
ApplicationInfo 返回ApplicationInfo对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 applicationFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT;

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

bundleManager.getSharedBundleInfo10+

getSharedBundleInfo(bundleName: string, moduleName: string, callback: AsyncCallback<Array<SharedBundleInfo>>): void

获取指定的共享包信息。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
moduleName string 表示被查询的module的name。
callback AsyncCallback<Array<SharedBundleInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取的指定共享包信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'library';

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

bundleManager.getSharedBundleInfo10+

getSharedBundleInfo(bundleName: string, moduleName: string): Promise<Array<SharedBundleInfo>>

获取指定的共享包信息。使用Promise异步回调。

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

系统接口: 此接口为系统接口

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示应用程序的bundleName。
moduleName string 表示被查询的module的name。

返回值:

类型 说明
Promise<Array<SharedBundleInfo>> Promise对象,返回指定的共享包信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'library';

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

bundleManager.getAllSharedBundleInfo10+

getAllSharedBundleInfo(callback: AsyncCallback<Array<SharedBundleInfo>>): void

获取所有的共享包信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<Array<SharedBundleInfo>> AsyncCallback,当获取成功时,err为undefined,data为获所有的共享包信息。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.getAllSharedBundleInfo10+

getAllSharedBundleInfo(): Promise<Array<SharedBundleInfo>>

获取所有的共享包信息。使用Promise异步回调。

系统接口: 此接口为系统接口

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

返回值:

类型 说明
Promise<Array<SharedBundleInfo>> Promise对象,返回所有的共享包信息。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.getAppProvisionInfo10+

getAppProvisionInfo(bundleName: string, callback: AsyncCallback<AppProvisionInfo>): void

获取指定bundleName的provision配置文件信息。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的bundleName。
callback AsyncCallback<AppProvisionInfo> AsyncCallback,当获取成功时,err为undefined,data为指定bundleName的provision配置文件信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.ohos.myapplication";

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

bundleManager.getAppProvisionInfo10+

getAppProvisionInfo(bundleName: string, userId: number, callback: AsyncCallback<AppProvisionInfo>): void

获取指定bundleName和userId的provision配置文件信息。使用callback异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的bundleName。
userId number 指定用户ID,可以通过getOsAccountLocalId获取。
callback AsyncCallback<AppProvisionInfo> AsyncCallback,当获取成功时,err为undefined,data为指定bundleName的provision配置文件信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.

示例:

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

let bundleName = "com.ohos.myapplication";
let userId = 100;

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

bundleManager.getAppProvisionInfo10+

getAppProvisionInfo(bundleName: string, userId?: number): Promise<AppProvisionInfo>

根据bundleName和userId获取应用的provision配置文件信息。使用Promise异步回调。

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

系统接口: 此接口为系统接口

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定的bundleName。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Promise<AppProvisionInfo> Promise对象,返回应用的provision配置文件信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.

示例:

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

let bundleName = "com.ohos.myapplication";
let userId = 100;

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

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

bundleManager.getAppProvisionInfoSync10+

getAppProvisionInfoSync(bundleName: string, userId?: number): AppProvisionInfo

以同步方法根据bundleName和userId获取应用的provision配置文件信息并返回结果。

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

系统接口: 此接口为系统接口

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定的bundleName。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
AppProvisionInfo AppProvisionInfo对象,返回应用的provision配置文件信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.

示例:

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

let bundleName = "com.ohos.myapplication";
let userId = 100;

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

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

bundleManager.getAllAppProvisionInfo23+

getAllAppProvisionInfo(userId?: number): Promise<Array<AppProvisionInfo>>

根据userId获取指定用户下所有应用的Provision配置文件信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 (ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS)

  • 获取当前用户下所有应用的provision配置文件信息时,需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED。

  • 获取其他用户下所有应用的provision配置文件信息时,需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED和ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

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

参数:

参数名 类型 必填 说明
userId number 表示用户ID,可以通过getOsAccountLocalId获取。
默认值:调用方所在用户ID。
取值范围:大于等于0。

返回值:

类型 说明
Promise<Array<AppProvisionInfo>> Promise对象,返回应用的provision配置文件信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. A non-system application is not allowed to call a system API.
17700004 The specified user id is not found.

示例:

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

let userId = 100;

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

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

bundleManager.getAllBundleInstallInfo23+

getAllBundleInstallInfo(): Promise<Array<Record<string, Object>>>

获取系统内所有应用的扩展安装信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

模型约束: 此接口仅可在Stage模型下使用。

需要权限: ohos.permission.GET_INSTALLED_BUNDLE_LIST

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

返回值:

类型 说明
Promise<Array<Record<string, Object>>> Promise对象,返回所有应用的扩展安装信息集合列表。

返回扩展安装信息集合字段说明:

名称 类型 说明
compatibleVersion number 应用所需要最低的SDK主版本。从API version 26.0.0开始,SDK版本由compatibleVersion、compatibleMinorVersion、compatiblePatchVersion拼接而成,版本形式为“主版本.次版本.补丁版本”,例如:26.0.0。API version 26.0.0之前的版本,仅用compatibleVersion表示,例如:15。
compatibleMinorVersion number 应用所需要最低的SDK次版本。具体用法请参考compatibleVersion字段描述。从API version 26.0.0开始,支持该字段。
compatiblePatchVersion number 应用所需要最低的SDK补丁版本。具体用法请参考compatibleVersion字段描述。从API version 26.0.0开始,支持该字段。
crowdtestDeadline number 众测活动的截止日期(毫秒级时间戳),-1表示无截止日期约束。
bundleName string 应用的包名。
specifiedDistributionType string 应用安装时指定的HarmonyAppProvision配置文件说明,默认值为空,最大长度128字节。
installSource string 应用的安装来源。
additionalInfo string 应用安装时的额外信息。
hashParam Array<Record<string, string>> 应用模块对应的安装卸载哈希参数信息列表,其中hashParam[i].key表示应用模块的名称;hashParam[i].value表示应用模块对应的哈希值。i为模块索引编号。
hapPath Array<string> 应用安装文件路径列表。
requiredDeviceFeatures Array<Object> 应用模块对应所需设备能力特征列表,其中requiredDeviceFeatures[i].moduleName表示应用模块名称,requiredDeviceFeatures[i].requiredDeviceFeature表示模块对应的所需设备能力特征。 i为模块能力特征列表的索引编号。
sharedBundleInfo Array<Object> 应用依赖的共享包信息对象列表,其中sharedBundleInfo[i].name表示共享包的应用包名,sharedBundleInfo[i].sharedModuleInfo[j].name表示共享包包含的模块名称,sharedBundleInfo[i].sharedModuleInfo[j].versionCode表示共享包包含的模块版本号,sharedBundleInfo[i].sharedModuleInfo[j].hapPath表示共享包包含的模块安装路径。i为共享包的索引编号,j为共享包包含的模块索引编号。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.getSpecifiedDistributionType10+

getSpecifiedDistributionType(bundleName: string): string

以同步的方法查询指定bundleName的HarmonyAppProvision配置文件说明,该返回值是在调用install接口时传入的InstallParam中的specifiedDistributionType字段。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定的bundleName。

返回值:

类型 说明
string 返回指定bundleName的HarmonyAppProvision配置文件说明

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.example.myapplication";

try {
  let type = bundleManager.getSpecifiedDistributionType(bundleName);
  hilog.info(0x0000, 'testTag', 'getSpecifiedDistributionType successfully, type:%{public}s', type);
} catch (error) {
  let message = (error as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getSpecifiedDistributionType failed. Cause: %{public}s', message);
}

bundleManager.getAdditionalInfo10+

getAdditionalInfo(bundleName: string): string

以同步接口查询指定bundleName的额外信息。该返回值是在调用install接口时传入的InstallParam中的additionalInfo字段。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定的bundleName。

返回值:

类型 说明
string 返回指定bundleName的额外信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.

示例:

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

let bundleName = "com.example.myapplication";

try {
  let info = bundleManager.getAdditionalInfo(bundleName);
  hilog.info(0x0000, 'testTag', 'getAdditionalInfo successfully, additionInfo:%{public}s', info);
} catch (error) {
  let message = (error as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAdditionalInfo failed. Cause: %{public}s', message);
}

bundleManager.queryExtensionAbilityInfoSync11+

queryExtensionAbilityInfoSync(want: Want, extensionAbilityType: string, extensionAbilityFlags: number, userId?: number): Array<ExtensionAbilityInfo>

根据给定的want、extensionAbilityType、extensionAbilityFlags和userId获取ExtensionAbilityInfo,使用同步方式返回结果。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
want Want 表示包含要查询的应用Bundle名称的Want。
extensionAbilityType string 表示自定义extensionAbility的类型。
extensionAbilityFlags number 表示返回的ExtensionInfo对象中需要包含的信息标志,具体取值及不同含义参考ExtensionAbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Array<ExtensionAbilityInfo> 同步返回Array<ExtensionAbilityInfo>。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. At least one parameter(action, entity, uri or type) is required for implicit query.
17700001 The specified bundleName is not found.
17700003 The specified extensionAbility is not found.
17700004 The specified userId is invalid.
17700026 The specified bundle is disabled.

示例:

// 示例接口带userId参数查询
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let extensionAbilityType = "form";
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let userId = 100;
let want: Want = {
  bundleName : "com.example.myapplication",
  abilityName : "EntryAbility"
};

try {
  let data = bundleManager.queryExtensionAbilityInfoSync(want, extensionAbilityType, extensionFlags, userId)
  hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfoSync successfully. Data: %{public}s', JSON.stringify(data));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfoSync failed: %{public}s', message);
}
// 示例接口不带userId参数查询
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let extensionAbilityType = "form";
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let want: Want = {
  bundleName: "com.example.myapplication",
  abilityName: "EntryAbility"
};

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

bundleManager.getJsonProfile11+

getJsonProfile(profileType: ProfileType, bundleName: string, moduleName?: string, userId?: number): string

以同步的方法根据给定的profileType、bundleName和moduleName查询相应配置文件的JSON字符串。

获取调用方自己的配置文件时不需要权限。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
profileType ProfileType 表示要查询的配置文件类型。
bundleName string 表示要查询应用程序的bundleName。
moduleName string 表示要查询应用程序的module的名称,缺省时在入口模块中查找。
userId12+ number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
string 返回配置文件的JSON字符串。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700004 The specified user ID is not found.
17700024 Failed to get the profile because the specified profile is not found in the HAP.
17700026 The specified bundle is disabled.

示例:

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

let bundleName = 'com.example.myapplication';
let moduleName = 'entry';
let profileType = bundleManager.ProfileType.INTENT_PROFILE;

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

bundleManager.getRecoverableApplicationInfo11+

getRecoverableApplicationInfo(callback: AsyncCallback<Array<RecoverableApplicationInfo>>): void

获取所有可恢复的预置应用信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
callback AsyncCallback<Array<RecoverableApplicationInfo>> AsyncCallback,当获取成功时,err为undefined,data为获取到的所有可恢复的预置应用信息。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.getRecoverableApplicationInfo11+

getRecoverableApplicationInfo(): Promise<Array<RecoverableApplicationInfo>>

获取所有可恢复的预置应用信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

返回值:

类型 说明
Promise<Array<RecoverableApplicationInfo>> Promise对象,返回所有可恢复的预置应用信息。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.setAdditionalInfo11+

setAdditionalInfo(bundleName: string, additionalInfo: string): void

设置指定应用的额外信息。此接口仅供应用市场调用。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的包名。
additionalInfo string 需要设置的应用的额外信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter bundleName is empty.
17700001 The specified bundleName is not found.
17700053 The caller is not AppGallery.

示例:

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

let bundleName = "com.example.myapplication";
let additionalInfo = "xxxxxxxxx,formUpdateLevel:4";

try {
  bundleManager.setAdditionalInfo(bundleName, additionalInfo);
  hilog.info(0x0000, 'testTag', 'setAdditionalInfo successfully.');
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setAdditionalInfo failed. Cause: %{public}s', message);
}

bundleManager.getAllPreinstalledApplicationInfo12+

getAllPreinstalledApplicationInfo(): Promise<Array<PreinstalledApplicationInfo>>

获取所有预置应用信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

返回值:

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

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.getAllNewPreinstalledApplicationInfo24+

getAllNewPreinstalledApplicationInfo(): Promise<Array<PreinstalledApplicationInfo>>

获取设备OTA升级期间当前用户下新增的所有预置应用信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

模型约束: 此接口仅可在Stage模型下使用。

返回值:

类型 说明
Promise<Array<PreinstalledApplicationInfo>> Promise对象,设备OTA升级期间当前用户下新增的所有预置应用信息。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.

示例:

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

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

bundleManager.queryExtensionAbilityInfoSync11+

queryExtensionAbilityInfoSync(extensionAbilityType: string, extensionAbilityFlags: number, userId?: number): Array<ExtensionAbilityInfo>

根据给定的extensionAbilityType、extensionAbilityFlags和userId获取ExtensionAbilityInfo。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
extensionAbilityType string 表示自定义extensionAbility的类型。
extensionAbilityFlags number 表示返回的ExtensionInfo对象中需要包含的信息标志,具体取值及不同含义参考ExtensionAbilityFlag
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户ID。取值范围:大于等于0。

返回值:

类型 说明
Array<ExtensionAbilityInfo> 同步返回Array<ExtensionAbilityInfo>。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter extensionAbilityType is empty.
17700003 The specified extensionAbility is not found.
17700004 The specified userId is invalid.

示例:

// 示例接口带userId参数查询
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';

let extensionAbilityType = "form";
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;
let userId = 100;

try {
  let data = bundleManager.queryExtensionAbilityInfoSync(extensionAbilityType, extensionFlags, userId)
  hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfoSync successfully. Data: %{public}s', JSON.stringify(data));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfoSync failed: %{public}s', message);
}
// 示例接口不带userId参数查询
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';

let extensionAbilityType = "form";
let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT;

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

bundleManager.getAllBundleInfoByDeveloperId12+

getAllBundleInfoByDeveloperId(developerId: string): Array<BundleInfo>

根据给定的developerId获取当前用户下的包信息列表。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
developerId string 表示应用的开发者ID。

返回值:

类型 说明
Array<BundleInfo> 同步返回Array<BundleInfo>。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter developerId is empty.
17700059 The specified developerId is invalid.

示例:

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

let developerId = "123456.789";

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

bundleManager.getDeveloperIds12+

getDeveloperIds(appDistributionType?: number): Array<string>

根据给定的应用appDistributionType获取当前用户下的所有开发者ID列表。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
appDistributionType number 表示应用的分发类型,当该参数缺省时,会返回所有应用的开发者ID列表。

返回值:

类型 说明
Array<string> 同步返回Array<string>。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.

示例:

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

let appDistributionType = bundleManager.AppDistributionType.ENTERPRISE;

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

bundleManager.switchUninstallState12+

switchUninstallState(bundleName: string, state: boolean): void

切换指定应用的可卸载状态,此接口与EDM应用拦截管控机制不互相影响。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_BUNDLE_UNINSTALL_STATE

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

参数:

参数名 类型 必填 说明
bundleName string 表示指定应用的bundleName。
state boolean 表示应用的可卸载状态,值为true表示应用可以被卸载,值为false表示应用不可以被卸载。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700060 The specified application cannot be uninstalled.

示例:

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

try {
  bundleManager.switchUninstallState('com.example.myapplication', false);
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'switchUninstallState failed: %{public}s', message);
}

bundleManager.getAllPluginInfo19+

getAllPluginInfo(hostBundleName: string, userId?: number): Promise<Array<PluginBundleInfo>>

根据给定的hostBundleName和userId获取所有的PluginBundleInfo。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
hostBundleName string 表示安装插件的应用包名。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户ID。取值范围:大于等于0。

返回值:

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

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.

示例:

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

let hostBundleName = 'com.ohos.demo';
let userId = 100;

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

let hostBundleName = 'com.ohos.demo';

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

bundleManager.getExtResource12+

getExtResource(bundleName: string): Promise<Array<string>>;

根据给定的bundleName获得扩展资源对应的moduleNames。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 要查询扩展资源的应用名称。

返回值:

类型 说明
Promise<Array<string>> Promise对象,返回接口运行结果及扩展资源对应的moduleNames。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700303 Failed to obtain extended resources.

示例:

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

let bundleName: string = 'com.ohos.demo';

try {
  bundleManager.getExtResource(bundleName).then((modules: Array<string>) => {
    for (let i = 0; i < modules.length; i++) {
      hilog.info(0x0000, 'testTag', 'getExtResource item: %{public}s', modules[i]);
    }
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getExtResource failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getExtResource failed. Cause: %{public}s', message);
}

bundleManager.enableDynamicIcon12+

enableDynamicIcon(bundleName: string, moduleName: string): Promise<void>;

根据给定的bundleName、moduleName使能动态图标。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.ACCESS_DYNAMIC_ICON

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

参数:

参数名 类型 必填 说明
bundleName string 要使能动态图标的应用名称。
moduleName string 要使能动态图标的模块名称。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700304 Failed to enable the dynamic icon.
17700307 Dynamic icons cannot take effect due to existing custom themes.

示例:

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

let bundleName: string = 'com.ohos.demo';
let moduleName: string = 'moduleTest';

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

bundleManager.enableDynamicIcon20+

enableDynamicIcon(bundleName: string, moduleName: string, option?: BundleOptions): Promise<void>

根据给定的bundleName、moduleName和option使能动态图标。使用Promise异步回调。

使能当前用户下的动态图标信息时需要申请权限ohos.permission.ACCESS_DYNAMIC_ICON。

使能其他用户下的动态图标信息时需要申请权限ohos.permission.ACCESS_DYNAMIC_ICON 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.ACCESS_DYNAMIC_ICON or (ohos.permission.ACCESS_DYNAMIC_ICON and ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS)

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

参数:

参数名 类型 必填 说明
bundleName string 要使能动态图标的应用包名。
moduleName string 要使能动态图标的模块名。
option BundleOptions 指定需要使能动态图标的用户和分身索引。缺省时使能应用所有用户和所有分身的动态图标。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700002 The specified moduleName is not found.
17700004 The specified user ID is not found.
17700061 AppIndex not in valid range.
17700304 Failed to enable the dynamic icon.
17700307 Dynamic icons cannot take effect due to existing custom themes.

示例:

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

let bundleName: string = 'com.ohos.demo';
let moduleName: string = 'moduleTest';
let option: bundleManager.BundleOptions = { 'userId': 100, 'appIndex': 0 };

try {
  bundleManager.enableDynamicIcon(bundleName, moduleName, option).then(() => {
    hilog.info(0x0000, 'testTag', 'enableDynamicIcon successfully');
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'enableDynamicIcon failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'enableDynamicIcon failed. Cause: %{public}s', message);
}

bundleManager.disableDynamicIcon12+

disableDynamicIcon(bundleName: string): Promise<void>;

根据给定的bundleName禁用动态图标。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.ACCESS_DYNAMIC_ICON

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

参数:

参数名 类型 必填 说明
bundleName string 要禁用动态图标的应用名称。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700305 Failed to disable the dynamic icon.

示例:

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

let bundleName: string = 'com.ohos.demo';

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

bundleManager.disableDynamicIcon20+

disableDynamicIcon(bundleName: string, option?: BundleOptions): Promise<void>

根据给定的bundleName和option禁用动态图标。使用Promise异步回调。

禁用当前用户下的动态图标信息时需要申请权限ohos.permission.ACCESS_DYNAMIC_ICON。

禁用其他用户下的动态图标信息时需要申请权限ohos.permission.ACCESS_DYNAMIC_ICON 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.ACCESS_DYNAMIC_ICON or (ohos.permission.ACCESS_DYNAMIC_ICON and ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS)

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

参数:

参数名 类型 必填 说明
bundleName string 要禁用动态图标的应用包名。
option BundleOptions 指定需要禁用动态图标的用户和分身索引。缺省时禁用应用所有用户和所有分身的动态图标。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700061 AppIndex not in valid range.
17700305 Failed to disable the dynamic icon.

示例:

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

let bundleName: string = 'com.ohos.demo';
let option: bundleManager.BundleOptions = { 'userId': 100, 'appIndex': 0 };

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

bundleManager.getDynamicIcon12+

getDynamicIcon(bundleName: string): Promise<string>;

根据给定的bundleName获得动态图标对应的moduleName。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 要查询扩展资源的应用名称。

返回值:

类型 说明
Promise<string> Promise对象。返回接口运行结果及动态图标对应的moduleName。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700001 The specified bundleName is not found.
17700306 Failed to obtain the dynamic icon.

示例:

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

let bundleName: string = 'com.ohos.demo';

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

bundleManager.getAppCloneIdentityBySandboxDataDir20+

getAppCloneIdentityBySandboxDataDir(sandboxDataDir: string): AppCloneIdentity

根据应用的沙箱目录名称获取应用的身份信息,包括应用包名和分身索引信息。

系统接口: 此接口为系统接口。

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

参数:

参数名 类型 必填 说明
sandboxDataDir string 表示应用的沙箱目录名称。
说明:
参数不校验合法性,如果入参sandboxDataDir不符合分身应用或元服务的目录名称格式,则sandboxDataDir将作为返回信息中的AppCloneIdentity.bundleName返回,此时AppCloneIdentity.appIndex为0。
1.分身应用目录名称格式要求:+clone-{appIndex}+{bundleName},appIndex和bundleName是变量,对应分身索引和应用包名,例如: +clone-1+com.example.myapplication
2.元服务目录名称格式格式要求:+auid-{uid}+{bundleName},uid和bundleName是变量,对应应用程序的UID和应用包名,例如: +auid-20000000+com.example.myapplication

返回值:

类型 说明
AppCloneIdentity 返回应用包名和分身索引信息。

示例:

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

// 主应用
let dataDir = 'com.example.myapplication';
try {
  let res = bundleManager.getAppCloneIdentityBySandboxDataDir(dataDir);
  hilog.info(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir successfully. res:%{public}s',
    JSON.stringify(res));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir failed. Cause: %{public}s',
    message);
}

// 分身应用
let cloneDataDir = '+clone-1+com.example.myapplication';
try {
  let res = bundleManager.getAppCloneIdentityBySandboxDataDir(cloneDataDir);
  hilog.info(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir successfully. res:%{public}s',
    JSON.stringify(res));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir failed. Cause: %{public}s',
    message);
}

// 元服务
let atomicDataDir = '+auid-20000000+com.example.myapplication';
try {
  let res = bundleManager.getAppCloneIdentityBySandboxDataDir(atomicDataDir);
  hilog.info(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir successfully. res:%{public}s',
    JSON.stringify(res));
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAppCloneIdentityBySandboxDataDir failed. Cause: %{public}s',
    message);
}

bundleManager.getSandboxDataDir20+

getSandboxDataDir(bundleName: string, appIndex: number): string

根据应用包名和分身索引获取对应的沙箱目录。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用包名。当前用户下有此应用或者分身才可查询,否则返回错误码17700001。
appIndex number 表示应用索引。取值范围0~5,取值为0表示主应用,取值1~5表示分身应用的索引。

返回值:

类型 说明
string 返回应用的沙箱目录。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700061 AppIndex not in valid range.

示例:

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

let bundleName = 'com.example.myapplication';
let appIndex = 1;

try {
  let dataDir = bundleManager.getSandboxDataDir(bundleName, appIndex);
  hilog.info(0x0000, 'testTag', 'getSandboxDataDir successfully. dataDir:%{public}s', dataDir);
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getSandboxDataDir failed. Cause: %{public}s', message);
}

bundleManager.getAppCloneBundleInfo12+

getAppCloneBundleInfo(bundleName: string, appIndex: number, bundleFlags: number, userId?: number): Promise<BundleInfo>;

根据bundleName、分身索引、bundleFlags以及用户ID查询主应用或分身应用的BundleInfo。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 表示要查询的应用Bundle名称。
appIndex number 表示要查询的分身应用索引。
appIndex为0时,表示查询主应用信息。appIndex大于0时,表示查询指定分身应用信息。
bundleFlags number 表示用于指定要返回的BundleInfo对象中包含的信息的标志。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,默认值:调用方所在用户,取值范围:大于等于0。

返回值:

类型 说明
Promise<BundleInfo> Promise对象。返回应用包信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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.
17700061 AppIndex not in valid range.

示例:

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

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

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

bundleManager.getAllAppCloneBundleInfo12+

getAllAppCloneBundleInfo(bundleName: string, bundleFlags: number, userId?: number): Promise<Array<BundleInfo>>;

根据bundleName、bundleFlags以及用户ID查询主应用和分身应用的BundleInfo列表。使用Promise异步回调。

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

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

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

返回值:

类型 说明
Promise<Array<BundleInfo>> Promise对象。返回应用包信息列表。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
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 and clone apps are all 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_HAP_MODULE |
bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY;

try {
  bundleManager.getAllAppCloneBundleInfo(bundleName, bundleFlags).then((res: Array<bundleManager.BundleInfo>) => {
    let index = 0;
    for (let item of res) {
      hilog.info(0x0000, 'testTag', 'getAllAppCloneBundleInfo res: BundleInfo[%{public}d] = %{public}s', index++,
        JSON.stringify(item));
    }
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'getAllAppCloneBundleInfo failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getAllAppCloneBundleInfo failed. Cause: %{public}s', message);
}

bundleManager.verifyAbc11+

verifyAbc(abcPaths: Array<string>, deleteOriginalFiles: boolean, callback: AsyncCallback<void>): void

根据给定的abcPaths和deleteOriginalFiles校验.abc文件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.RUN_DYN_CODE

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

参数:

参数名 类型 必填 说明
abcPaths Array<string> .abc文件路径。
deleteOriginalFiles boolean 是否删除.abc文件,true删除,false不删除。
callback AsyncCallback<void> AsyncCallback,当获取成功时,err为undefined;否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700201 Failed to verify the abc file.

示例:

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

let abcPaths: Array<string> = ['/data/storage/el2/base/a.abc'];

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

bundleManager.migrateData18+

migrateData(sourcePaths: Array<string>, destinationPath: string): Promise<void>

拷贝文件,将文件从源路径拷贝到目标路径。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MIGRATE_DATA

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

参数:

参数名 类型 必填 说明
sourcePaths Array<string> 需要迁移的源路径数组,支持传入如/example1/test.txt的单文件路径,或/example2/test的目录路径。
destinationPath string 目标路径,仅支持传入一个目录路径,例如:/example2/test。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700080 The source paths are invalid.
17700081 The destination path is invalid.
17700082 User authentication failed.
17700083 Waiting for user authentication timeout.
17700084 There are inaccessible path in the source paths.
17700085 The destination path cannot be accessed.
17700086 System error occurred during copy execution.

示例:

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

try {
  // 开发者需将source1、source2、dest内容更新为实际文件路径或目录路径。
  let source1: string = "/data/app/el2/100/base/com.example.myapplication/";
  let source2: string = "/data/app/el2/101/base/com.example.myapplication/log.txt";
  let dest: string = "/data/local/tmp";
  let sourcePaths: Array<string> = [source1, source2];

  bundleManager.migrateData(sourcePaths, dest)
    .then(() => {
      hilog.info(0x0000, 'testTag', 'migrateData succeed');
    })
    .catch((err: BusinessError) => {
      hilog.error(0x0000, 'testTag', 'migrateData err: %{public}s', JSON.stringify(err));
    })
} catch (err) {
  hilog.error(0x0000, 'testTag', 'migrateData call err: %{public}s', JSON.stringify(err));
}

bundleManager.verifyAbc11+

verifyAbc(abcPaths: Array<string>, deleteOriginalFiles: boolean): Promise<void>

根据给定的abcPaths和deleteOriginalFiles校验.abc文件。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.RUN_DYN_CODE

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

参数:

参数名 类型 必填 说明
abcPaths Array<string> .abc文件路径。
deleteOriginalFiles boolean 是否删除.abc文件,true删除,false不删除。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700201 Failed to verify the abc file.

示例:

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

let abcPaths: Array<string> = ['/data/storage/el2/base/a.abc'];

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

bundleManager.deleteAbc11+

deleteAbc(abcPath: string): Promise<void>

根据给定的abcPath删除.abc文件。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.RUN_DYN_CODE

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

参数:

参数名 类型 必填 说明
abcPath string .abc文件路径。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
17700202 Failed to delete the abc file.

示例:

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

let abcPath: string = '/data/storage/el2/base/a.abc';

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

bundleManager.getDynamicIconInfo20+

getDynamicIconInfo(bundleName: string): Promise<Array<DynamicIconInfo>>

根据指定的bundleName获取所有用户和所有分身下的动态图标信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED and ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

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

参数:

参数名 类型 必填 说明
bundleName string 要查询动态图标的应用包名。

返回值:

类型 说明
Promise<Array<DynamicIconInfo>> Promise对象,返回查询到的动态图标信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700306 Failed to obtain the dynamic icon.

示例:

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

let bundleName: string = 'com.ohos.demo';

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

bundleManager.getAllDynamicIconInfo20+

getAllDynamicIconInfo(userId?: number): Promise<Array<DynamicIconInfo>>

查询指定用户下所有应用和所有分身的动态图标信息。使用Promise异步回调。

查询当前用户下所有应用和所有分身的动态图标信息时需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED。

查询其他用户或者所有用户下所有应用和所有分身的动态图标信息时需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED and ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

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

参数:

参数名 类型 必填 说明
userId number 标识用户ID。缺省时查询所有用户下所有应用和所有分身的动态图标信息。

返回值:

类型 说明
Promise<Array<DynamicIconInfo>> Promise对象,返回查询到的动态图标信息。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700004 The specified user ID is not found.
17700306 Failed to obtain the dynamic icon.

示例:

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

let userId: number = 100;

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

bundleManager.setAbilityFileTypesForSelf22+

setAbilityFileTypesForSelf(moduleName: string, abilityName: string, fileTypes: Array<string>): void

设置当前应用支持打开的文件类型。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_SELF_SKILLS

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

设备行为差异: 该接口在PC/2in1中可正常调用,在其他设备类型中返回201错误码。

参数:

参数名 类型 必填 说明
moduleName string 表示模块的名称。
abilityName string 表示UIAbility组件的名称。
fileTypes Array<string> 表示文件类型。fileTypes数组长度不能超过1024,每个元素不能超过512个字符,元素取值为UniformDataType中的值,元素不能为空、通配符、general.object。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700002 The specified moduleName is not found.
17700003 The specified abilityName is not found.
17700351 Invalid fileTypes. Possible causes:1. The array length exceeds 1024; 2. The array contains an empty item; 3. An item exceeds 512 characters; 4. The array contains wildcard or general.object.

示例:

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

let moduleName: string = "entry";
let abilityName: string = "EntryAbility";
let fileTypes: Array<string> = ["general.png", "general.jpeg"];

try {
  bundleManager.setAbilityFileTypesForSelf(moduleName, abilityName, fileTypes);
  hilog.info(0x0000, 'testTag', 'setAbilityFileTypesForSelf successfully');
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setAbilityFileTypesForSelf failed. Cause: %{public}s', message);
}

bundleManager.recoverBackupBundleData21+

recoverBackupBundleData(bundleName: string, userId: number, appIndex: number): Promise<void>

恢复指定用户下指定应用或分身应用的备份数据。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.RECOVER_BUNDLE

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

参数:

参数名 类型 必填 说明
bundleName string 要恢复备份的应用包名。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,取值范围:大于等于0。
appIndex number 表示应用索引。取值范围0~5,取值为0表示主应用,取值1~5表示分身应用的索引。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700061 AppIndex not in valid range.

示例:

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

// 请开发者替换为实际的包名、用户ID和应用索引
let bundleName: string = 'com.ohos.demo';
let userId: number = 100;
let appIndex: number = 0;

try {
  bundleManager.recoverBackupBundleData(bundleName, userId, appIndex).then(() => {
    hilog.info(0x0000, 'testTag', 'recoverBackupBundleData successfully');
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'recoverBackupBundleData failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'recoverBackupBundleData failed. Cause: %{public}s', message);
}

bundleManager.removeBackupBundleData21+

removeBackupBundleData(bundleName: string, userId: number, appIndex: number): Promise<void>

删除指定用户下指定应用或分身应用的备份数据。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CLEAN_APPLICATION_DATA

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

参数:

参数名 类型 必填 说明
bundleName string 要删除备份的应用包名。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,取值范围:大于等于0。
appIndex number 表示应用索引。取值范围0~5,取值为0表示主应用,取值1~5表示分身应用的索引。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied, non-system app called system api.
17700001 The specified bundleName is not found.
17700004 The specified user ID is not found.
17700061 AppIndex not in valid range.

示例:

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

// 请开发者替换为实际的包名、用户ID和应用索引
let bundleName: string = 'com.ohos.demo';
let userId: number = 100;
let appIndex: number = 0;

try {
  bundleManager.removeBackupBundleData(bundleName, userId, appIndex).then(() => {
    hilog.info(0x0000, 'testTag', 'removeBackupBundleData successfully');
  }).catch((err: BusinessError) => {
    hilog.error(0x0000, 'testTag', 'removeBackupBundleData failed. Cause: %{public}s', err.message);
  });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'removeBackupBundleData failed. Cause: %{public}s', message);
}

bundleManager.getBundleInstallStatus23+

getBundleInstallStatus(bundleName: string): BundleInstallStatus

查询当前用户下指定应用的安装状态。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

参数:

参数名 类型 必填 说明
bundleName string 指定应用的包名。

返回值:

类型 说明
BundleInstallStatus 应用的安装状态。

错误码:

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

错误码ID 错误信息
201 Permission denied.
202 Permission denied. A non-system application is not allowed to call a system API.

示例:

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

// 请开发者替换为实际的包名
let bundleName: string = 'com.ohos.demo';

try {
  let bundleInstallStatus = bundleManager.getBundleInstallStatus(bundleName);
  hilog.info(0x0000, 'testTag', 'bundle install status:' + bundleInstallStatus);
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'getBundleInstallStatus failed. Cause: %{public}s', message);
}

bundleManager.isApplicationDisableForbidden24+

isApplicationDisableForbidden(bundleName: string, userId: number, appIndex: number): boolean

以同步方法查询指定用户下指定应用或分身应用是否被设置禁止停用。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 (ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 和 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS)

  • 查询当前用户下指定应用是否被设置禁止停用时,需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED。

  • 查询其他用户下指定应用是否被设置禁止停用时,需要申请权限ohos.permission.GET_BUNDLE_INFO_PRIVILEGED和ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS。

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

模型约束: 此接口仅可在Stage模型下使用。

参数:

参数名 类型 必填 说明
bundleName string 表示应用的包名。
userId number 表示用户ID,可以通过getOsAccountLocalId获取,取值范围:大于等于0。
appIndex number 表示应用索引。取值范围0~5,取值为0表示主应用,取值1~5表示分身应用的索引。

返回值:

类型 说明
boolean 指定应用是否被设置禁止停用。
返回true表示指定应用已被设置禁止停用,返回false表示指定应用没有被设置禁止停用。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. Non-system APP calling system API.
17700001 The specified bundle is not found.
17700004 The specified user ID is not found.
17700061 The specified app index is invalid.

示例:

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

let bundleName: string = 'com.example.myapplication';
let userId: number = 100;
let appIndex: number = 0;

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

bundleManager.setApplicationEnabledSync

setApplicationEnabledSync(bundleName: string, appIndex: number, isEnabled: boolean, killProcess: boolean): void

以同步方法设置指定应用或分身应用的启用或禁用状态,并控制禁用时是否退出应用进程。

起始版本: 26.0.0

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

模型约束: 此接口仅可在Stage模型下使用。

参数:

参数名 类型 必填 说明
bundleName string 应用的包名。
appIndex number 应用索引。取值范围0~5的整数,取值为0表示主应用,取值1~5表示分身应用的索引。
isEnabled boolean 是否启用应用。值为true表示启用应用,值为false表示禁用应用。
killProcess boolean 禁用应用时是否退出应用进程。值为true表示禁用应用时将退出应用进程,值为false表示禁用应用时不退出应用进程。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. Non-system APP calling system API.
17700001 The specified bundle is not found.
17700061 The specified app index is invalid.

示例:

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

// 需要替换为要设置的应用Bundle名称、应用索引、是否启用应用和禁用应用时是否退出应用进程
let bundleName: string = 'com.example.myapplication';
let appIndex: number = 0;
let isEnabled: boolean = true;
let killProcess: boolean = false;

try {
  bundleManager.setApplicationEnabledSync(bundleName, appIndex, isEnabled, killProcess);
  hilog.info(0x0000, 'testTag', 'setApplicationEnabledSync successfully');
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setApplicationEnabledSync failed: %{public}s', message);
}

bundleManager.setApplicationEnabled

setApplicationEnabled(bundleName: string, appIndex: number, isEnabled: boolean, killProcess: boolean): Promise<void>

设置指定应用或分身应用的启用或禁用状态,并控制禁用时是否退出应用进程。使用Promise异步回调。

起始版本: 26.0.0

系统接口: 此接口为系统接口。

需要权限: ohos.permission.CHANGE_ABILITY_ENABLED_STATE

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

模型约束: 此接口仅可在Stage模型下使用。

参数:

参数名 类型 必填 说明
bundleName string 应用的包名。
appIndex number 应用索引。取值范围0~5的整数,取值为0表示主应用,取值1~5表示分身应用的索引。
isEnabled boolean 是否启用应用。值为true表示启用应用,值为false表示禁用应用。
killProcess boolean 禁用应用时是否退出应用进程。值为true表示禁用应用时将退出应用进程,值为false表示禁用应用时不退出应用进程。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. Non-system APP calling system API.
17700001 The specified bundle is not found.
17700061 The specified app index is invalid.

示例:

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

// 需要替换为要设置的应用Bundle名称、应用索引、是否启用应用和禁用应用时是否退出应用进程
let bundleName: string = 'com.example.myapplication';
let appIndex: number = 0;
let isEnabled: boolean = true;
let killProcess: boolean = false;

try {
  bundleManager.setApplicationEnabled(bundleName, appIndex, isEnabled, killProcess)
    .then(() => {
      hilog.info(0x0000, 'testTag', 'setApplicationEnabled successfully');
    })
    .catch((err: BusinessError) => {
      hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message);
    });
} catch (err) {
  let message = (err as BusinessError).message;
  hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', message);
}

bundleManager.getAbilityIcondeprecated

getAbilityIcon(bundleName: string, moduleName: string, abilityName: string): Promise<image.PixelMap>

通过bundleName、moduleName和abilityName获取对应Icon的PixelMap,使用Promise异步回调。

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

说明:

从API version 9开始支持,从API version 10开始废弃,建议使用getMediaContent替代。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 要查询的应用Bundle名称。
moduleName string 要查询的应用Module名称。
abilityName string 要查询的Ability组件名。

返回值:

类型 说明
Promise<image.PixelMap> Promise对象,返回值为PixelMap

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. Non-system APP calling system API.
801 Capability not supported.
17700001 The specified bundle is not found.
17700002 The specified module is not found.
17700003 The specified ability is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

// 需要替换为要查询的应用Bundle名称、Module名称和Ability组件名
let bundleName: string = "com.example.myapplication";
let moduleName: string = "entry";
let abilityName: string = "EntryAbility";

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

bundle.getAbilityIcondeprecated

getAbilityIcon(bundleName: string, moduleName: string, abilityName: string, callback: AsyncCallback<image.PixelMap>): void

通过bundleName、moduleName和abilityName获取对应Icon的PixelMap,使用callback异步回调。

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

说明:

从API version 9开始支持,从API version 10开始废弃,建议使用getMediaContent替代。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO

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

参数:

参数名 类型 必填 说明
bundleName string 要查询的应用Bundle名称。
moduleName string 要查询的应用Module名称。
abilityName string 要查询的Ability组件名。
callback AsyncCallback<image.PixelMap> 回调函数,返回指定PixelMap,作为程序启动时的入参。

错误码:

以下错误码的详细介绍请参见通用错误码包管理子系统通用错误码

错误码ID 错误信息
201 Permission denied.
202 Permission denied. Non-system APP calling system API.
801 Capability not supported.
17700001 The specified bundle is not found.
17700002 The specified module is not found.
17700003 The specified ability is not found.
17700026 The specified bundle is disabled.
17700029 The specified ability is disabled.

示例:

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

// 需要替换为要查询的应用Bundle名称、Module名称和Ability组件名
let bundleName: string = "com.example.myapplication";
let moduleName: string = "entry";
let abilityName: string = "EntryAbility";

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

PermissionDef

type PermissionDef = _PermissionDef

module.json5配置文件中定义的权限详细信息。

系统接口: 此接口为系统接口。

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

类型 说明
_PermissionDef 配置文件中定义的权限详细信息。

SharedBundleInfo10+

type SharedBundleInfo = _SharedBundleInfo

共享包信息。

系统接口: 此接口为系统接口。

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

类型 说明
_SharedBundleInfo 共享包信息。

AppProvisionInfo10+

type AppProvisionInfo = _AppProvisionInfo.AppProvisionInfo

应用HarmonyAppProvision配置文件中的信息。

系统接口: 此接口为系统接口。

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

类型 说明
_AppProvisionInfo.AppProvisionInfo 应用HarmonyAppProvision配置文件中的信息。

Validity10+

type Validity = _AppProvisionInfo.Validity

配置文件中的有效期。

系统接口: 此接口为系统接口。

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

类型 说明
_AppProvisionInfo.Validity 配置文件中的有效期。

RecoverableApplicationInfo11+

type RecoverableApplicationInfo = _RecoverableApplicationInfo

预置应用被卸载后可以恢复的预置应用信息。

系统接口: 此接口为系统接口。

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

类型 说明
_RecoverableApplicationInfo 预置应用被卸载后可以恢复的预置应用信息。

PreinstalledApplicationInfo12+

type PreinstalledApplicationInfo = _PreinstalledApplicationInfo

预置应用信息。

系统接口: 此接口为系统接口。

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

类型 说明
_PreinstalledApplicationInfo 预置应用信息。

PluginBundleInfo19+

type PluginBundleInfo = _PluginBundleInfo

插件信息。

系统接口: 此接口为系统接口。

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

类型 说明
_PluginBundleInfo 插件信息。

PluginModuleInfo19+

type PluginModuleInfo = _PluginModuleInfo

插件的模块信息。

系统接口: 此接口为系统接口。

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

类型 说明
_PluginModuleInfo 插件的模块信息。

DynamicIconInfo20+

type DynamicIconInfo = _BundleInfo.DynamicIconInfo

应用的动态图标信息。

系统接口: 此接口为系统接口。

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

类型 说明
_BundleInfo.DynamicIconInfo 应用的动态图标信息。

BundleOptions20+

type BundleOptions = _BundleInfo.BundleOptions

应用包选项,用于设置或查询应用相关信息。

系统接口: 此接口为系统接口。

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

类型 说明
_BundleInfo.BundleOptions 应用包选项,用于设置或查询应用相关信息。