应用信息查询能力
本模块提供应用信息查询能力,支持BundleInfo、ApplicationInfo、Ability、ExtensionAbility等信息的查询
本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
权限列表
权限 | 权限等级 | 描述 |
---|---|---|
ohos.permission.GET_BUNDLE_INFO | normal | 查询指定应用信息。 |
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 |
ohos.permission.REMOVE_CACHE_FILES | system_basic | 清理应用缓存。 |
ohos.permission.CHANGE_ABILITY_ENABLED_STATE | system_basic | 设置禁用使能所需的权限。 |
权限等级参考权限等级说明。
BundleFlag
包信息标志,指示需要获取的包信息的内容。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
GET_BUNDLE_INFO_DEFAULT | 0x00000000 | 用于获取默认bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。 |
GET_BUNDLE_INFO_WITH_APPLICATION | 0x00000001 | 用于获取包含applicationInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、hapModuleInfo、ability、extensionAbility和permission的信息。 |
GET_BUNDLE_INFO_WITH_HAP_MODULE | 0x00000002 | 用于获取包含hapModuleInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability、extensionAbility和permission的信息。 |
GET_BUNDLE_INFO_WITH_ABILITY | 0x00000004 | 用于获取包含ability的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、extensionAbility和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。 |
GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY | 0x00000008 | 用于获取包含extensionAbility的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability 和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。 |
GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION | 0x00000010 | 用于获取包含permission的bundleInfo。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、extensionAbility和ability的信息。 |
GET_BUNDLE_INFO_WITH_METADATA | 0x00000020 | 用于获取applicationInfo、moduleInfo和abilityInfo中包含的metadata。它不能单独使用,它需要与GET_BUNDLE_INFO_WITH_APPLICATION、GET_BUNDLE_INFO_WITH_HAP_MODULE、GET_BUNDLE_INFO_WITH_ABILITY、GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY一起使用。 |
GET_BUNDLE_INFO_WITH_DISABLE | 0x00000040 | 用于获取application被禁用的BundleInfo和被禁用的Ability信息。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。 |
GET_BUNDLE_INFO_WITH_SIGNATURE_INFO | 0x00000080 | 用于获取包含signatureInfo的bundleInfo。获取的bundleInfo不包含applicationInfo、hapModuleInfo、extensionAbility、ability和permission的信息。 |
ExtensionAbilityType
指示扩展组件的类型。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
FORM | 0 | FormExtensionAbility:卡片扩展能力,提供卡片开发能力。 |
WORK_SCHEDULER | 1 | WorkSchedulerExtensionAbility:延时任务扩展能力,允许应用在系统闲时执行实时性不高的任务。 |
INPUT_METHOD | 2 | InputMethodExtensionAbility:输入法扩展能力,用于开发输入法应用。 |
SERVICE | 3 | ServiceExtensionAbility:后台服务扩展能力,提供后台运行并对外提供相应能力。 仅对系统应用开放。 |
ACCESSIBILITY | 4 | AccessibilityExtensionAbility:无障碍服务扩展能力,支持访问与操作前台界面。 |
DATA_SHARE | 5 | DataShareExtensionAbility:数据共享扩展能力,用于对外提供数据读写服务。 仅对系统应用开放。 |
FILE_SHARE | 6 | FileShareExtensionAbility:文件共享扩展能力,用于应用间的文件分享。 预留能力,当前暂未支持。 |
STATIC_SUBSCRIBER | 7 | StaticSubscriberExtensionAbility:静态广播扩展能力,用于处理静态事件,比如开机事件。 仅对系统应用开放。 |
WALLPAPER | 8 | WallpaperExtensionAbility:壁纸扩展能力,用于实现桌面壁纸。 预留能力,当前暂未支持。 |
BACKUP | 9 | BackupExtensionAbility:数据备份扩展能力,提供应用数据和公共数据备份回复能力。 预留能力,当前暂未支持。 |
WINDOW | 10 | WindowExtensionAbility:界面组合扩展能力,允许系统应用进行跨应用的界面拉起和嵌入。 仅对系统应用开放。 |
ENTERPRISE_ADMIN | 11 | EnterpriseAdminExtensionAbility:企业设备管理扩展能力,提供企业管理时处理管理事件的能力,比如设备上应用安装事件、锁屏密码输入错误次数过多事件等。 仅对系统应用开放。 |
THUMBNAIL | 13 | ThumbnailExtensionAbility:文件缩略图扩展能力,用于为文件提供图标缩略图的能力。预留能力,当前暂未支持。 |
PREVIEW | 14 | PreviewExtensionAbility:文件预览扩展能力,提供文件预览的能力,其他应用可以直接在应用中嵌入显示。 预留能力,当前暂未支持。 |
UNSPECIFIED | 255 | 不指定类型,配合queryExtensionAbilityInfo接口可以查询所有类型的ExtensionAbility。 |
PermissionGrantState
指示权限授予状态。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
PERMISSION_DENIED | -1 | 拒绝授予权限。 |
PERMISSION_GRANTED | 0 | 授予权限。 |
SupportWindowMode
标识该组件所支持的窗口模式。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
FULL_SCREEN | 0 | 窗口支持全屏显示。 |
SPLIT | 1 | 窗口支持分屏显示。 |
FLOATING | 2 | 支持窗口化显示。 |
LaunchType
指示组件的启动方式。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
SINGLETON | 0 | ability的启动模式,表示单实例。 |
MULTITON | 1 | ability的启动模式,表示普通多实例。 |
SPECIFIED | 2 | ability的启动模式,表示该ability内部根据业务自己置顶多实例。 |
AbilityType
指示Ability组件的类型。
模型约束: 仅可在FA模型下使用
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
PAGE | 1 | 表示基于Page模板开发的FA,用于提供与用户交互的能力。 |
SERVICE | 2 | 表示基于Service模板开发的PA,用于提供后台运行任务的能力。 |
DATA | 3 | 表示基于Data模板开发的PA,用于对外部提供统一的数据访问对象。 |
DisplayOrientation
标识该Ability的显示模式。该标签仅适用于page类型的Ability。
系统能力: 以下各项对应的系统能力均为SystemCapability.BundleManager.BundleFramework.Core。
名称 | 值 | 说明 |
---|---|---|
UNSPECIFIED | 0 | 表示未定义方向模式,由系统判定。 |
LANDSCAPE | 1 | 表示横屏显示模式。 |
PORTRAIT | 2 | 表示竖屏显示模式。 |
FOLLOW_RECENT | 3 | 表示跟随上一个显示模式。 |
LANDSCAPE_INVERTED | 4 | 表示反向横屏显示模式。 |
PORTRAIT_INVERTED | 5 | 表示反向竖屏显示模式。 |
AUTO_ROTATION | 6 | 表示传感器自动旋转模式。 |
AUTO_ROTATION_LANDSCAPE | 7 | 表示传感器自动横向旋转模式。 |
AUTO_ROTATION_PORTRAIT | 8 | 表示传感器自动竖向旋转模式。 |
AUTO_ROTATION_RESTRICTED | 9 | 表示受开关控制的自动旋转模式。 |
AUTO_ROTATION_LANDSCAPE_RESTRICTED | 10 | 表述受开关控制的自动横向旋转模式。 |
AUTO_ROTATION_PORTRAIT_RESTRICTED | 11 | 表示受开关控制的自动竖向旋转模式。 |
LOCKED | 12 | 表示锁定模式。 |
bundleManager.getBundleInfoForSelf
getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>;
以异步方法根据给定的bundleFlags获取当前应用的BundleInfo,使用Promise形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundleFlags | 是 | 指定返回的BundleInfo所包含的信息。 |
返回值:
类型 | 说明 |
---|---|
Promise<BundleInfo> | Promise对象,返回当前应用的BundleInfo。 |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
- try {
- bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
- hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
- }).catch(err => {
- hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
- }
bundleManager.getBundleInfoForSelf
getBundleInfoForSelf(bundleFlags: number, callback: AsyncCallback<BundleInfo>): void;
以异步方法根据给定的bundleFlags获取当前应用的BundleInfo,使用callback形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
bundleFlags | 是 | 指定返回的BundleInfo所包含的信息。 | |
callback | AsyncCallback<BundleInfo> | 是 | 回调函数,当获取成功时,err为null,data为获取到的当前应用的BundleInfo;否则为错误对象。 |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
- try {
- bundleManager.getBundleInfoForSelf(bundleFlags, (err, data) => {
- if (err) {
- hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
- } else {
- hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully: %{public}s', JSON.stringify(data));
- }
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
- }
bundleManager.getProfileByAbility
getProfileByAbility(moduleName: string, abilityName: string, metadataName: string, callback: AsyncCallback<Array<string>>): void;
以异步方法根据给定的moduleName、abilityName和metadataName获取相应配置文件的json格式字符串,使用callback形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
moduleName | string | 是 | 表示应用程序的moduleName。 |
abilityName | string | 是 | 表示应用程序的abilityName。 |
metadataName | string | 是 | 表示应用程序的metadataName。 |
callback | AsyncCallback<Array<string>> | 是 | 回调函数,当获取成功时,err为null,data为获取到的Array<string>;否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见ohos.bundle错误码。
错误码ID | 错误信息 |
---|---|
17700002 | The specified moduleName is not existed. |
17700003 | The specified abilityName is not existed. |
17700024 | Failed to get the profile because there is no profile in the HAP. |
17700026 | The specified bundle is disabled. |
17700029 | The specified ability is disabled. |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let moduleName = 'entry';
- let abilityName = 'MainAbility';
- let metadataName = 'com.example.myapplication.metadata';
- try {
- bundleManager.getProfileByAbility(moduleName, abilityName, metadataName, (err, data) => {
- if (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- } else {
- hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully: %{public}s', JSON.stringify(data));
- }
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- }
bundleManager.getProfileByAbility
getProfileByAbility(moduleName: string, abilityName: string, metadataName?: string): Promise<Array<string>>;
以异步方法根据给定的moduleName、abilityName和metadataName获取相应配置文件的json格式字符串,使用Promise形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
moduleName | string | 是 | 表示应用程序的moduleName。 |
abilityName | string | 是 | 表示应用程序的abilityName。 |
metadataName | string | 否 | 表示应用程序的metadataName。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回Array<string>。 |
错误码:
以下错误码的详细介绍请参见ohos.bundle错误码。
错误码ID | 错误信息 |
---|---|
17700002 | The specified moduleName is not existed. |
17700003 | The specified abilityName is not existed. |
17700024 | Failed to get the profile because there is no profile in the HAP. |
17700026 | The specified bundle is disabled. |
17700029 | The specified ability is disabled. |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let moduleName = 'entry';
- let abilityName = 'MainAbility';
- try {
- bundleManager.getProfileByAbility(moduleName, abilityName).then((data) => {
- hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
- }).catch(err => {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- }
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let moduleName = 'entry';
- let abilityName = 'MainAbility';
- let metadataName = 'com.example.myapplication.metadata';
- try {
- bundleManager.getProfileByAbility(moduleName, abilityName, metadataName).then((data) => {
- hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
- }).catch(err => {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
- }
bundleManager.getProfileByExtensionAbility
getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName: string, callback: AsyncCallback<Array<string>>): void;
以异步方法根据给定的moduleName、extensionAbilityName和metadataName获取相应配置文件的json格式字符串,使用callback形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
moduleName | string | 是 | 表示应用程序的moduleName。 |
extensionAbilityName | string | 是 | 表示应用程序的extensionAbilityName。 |
metadataName | string | 是 | 表示应用程序的metadataName。 |
callback | AsyncCallback<Array<string>> | 是 | 回调函数,当获取成功时,err为null,data为获取到的Array<string>;否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见ohos.bundle错误码。
错误码ID | 错误信息 |
---|---|
17700002 | The specified moduleName is not existed. |
17700003 | The specified extensionAbilityName not existed. |
17700024 | Failed to get the profile because there is no profile in the HAP. |
17700026 | The specified bundle is disabled. |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let moduleName = 'entry';
- let extensionAbilityName = 'com.example.myapplication.extension';
- let metadataName = 'com.example.myapplication.metadata';
- try {
- bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName, (err, data) => {
- if (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
- } else {
- hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully: %{public}s', JSON.stringify(data));
- }
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
- }
bundleManager.getProfileByExtensionAbility
getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName?: string): Promise<Array<string>>;
以异步方法根据给定的moduleName、extensionAbilityName和metadataName获取相应配置文件的json格式字符串,使用Promise形式返回结果。
系统能力: SystemCapability.BundleManager.BundleFramework.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
moduleName | string | 是 | 表示应用程序的moduleName。 |
extensionAbilityName | string | 是 | 表示应用程序的extensionAbilityName。 |
metadataName | string | 否 | 表示应用程序的metadataName。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回Array<string>对象。 |
错误码:
以下错误码的详细介绍请参见ohos.bundle错误码。
错误码ID | 错误信息 |
---|---|
17700002 | The specified moduleName is not existed. |
17700003 | The specified extensionAbilityName not existed. |
17700024 | Failed to get the profile because there is no profile in the HAP. |
17700026 | The specified bundle is disabled. |
示例:
- import bundleManager from '@ohos.bundle.bundleManager';
- import hilog from '@ohos.hilog';
- let moduleName = 'entry';
- let extensionAbilityName = 'com.example.myapplication.extension';
- let metadataName = 'com.example.myapplication.metadata';
- try {
- bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName).then((data) => {
- hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
- }).catch(err => {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
- }
- try {
- bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName).then((data) => {
- hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
- }).catch(err => {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
- });
- } catch (err) {
- hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
- }
更多建议: