应用信息查询能力

2024-01-23 13:05 更新

本模块提供应用信息查询能力,支持BundleInfo、ApplicationInfo、Ability、ExtensionAbility等信息的查询

说明

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

导入模块

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

权限列表

权限

权限等级

描述

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

number

指定返回的BundleInfo所包含的信息。

返回值:

类型

说明

Promise<BundleInfo>

Promise对象,返回当前应用的BundleInfo。

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
  4. try {
  5. bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
  6. hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
  7. }).catch(err => {
  8. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
  9. });
  10. } catch (err) {
  11. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
  12. }

bundleManager.getBundleInfoForSelf

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

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

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

参数:

参数名

类型

必填

说明

bundleFlags

number

指定返回的BundleInfo所包含的信息。

callback

AsyncCallback<BundleInfo>

回调函数,当获取成功时,err为null,data为获取到的当前应用的BundleInfo;否则为错误对象。

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
  4. try {
  5. bundleManager.getBundleInfoForSelf(bundleFlags, (err, data) => {
  6. if (err) {
  7. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
  8. } else {
  9. hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully: %{public}s', JSON.stringify(data));
  10. }
  11. });
  12. } catch (err) {
  13. hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
  14. }

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.

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let moduleName = 'entry';
  4. let abilityName = 'MainAbility';
  5. let metadataName = 'com.example.myapplication.metadata';
  6. try {
  7. bundleManager.getProfileByAbility(moduleName, abilityName, metadataName, (err, data) => {
  8. if (err) {
  9. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  10. } else {
  11. hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully: %{public}s', JSON.stringify(data));
  12. }
  13. });
  14. } catch (err) {
  15. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  16. }

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.

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let moduleName = 'entry';
  4. let abilityName = 'MainAbility';
  5. try {
  6. bundleManager.getProfileByAbility(moduleName, abilityName).then((data) => {
  7. hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
  8. }).catch(err => {
  9. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  10. });
  11. } catch (err) {
  12. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  13. }
  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let moduleName = 'entry';
  4. let abilityName = 'MainAbility';
  5. let metadataName = 'com.example.myapplication.metadata';
  6. try {
  7. bundleManager.getProfileByAbility(moduleName, abilityName, metadataName).then((data) => {
  8. hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
  9. }).catch(err => {
  10. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  11. });
  12. } catch (err) {
  13. hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
  14. }

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.

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let moduleName = 'entry';
  4. let extensionAbilityName = 'com.example.myapplication.extension';
  5. let metadataName = 'com.example.myapplication.metadata';
  6. try {
  7. bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName, (err, data) => {
  8. if (err) {
  9. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
  10. } else {
  11. hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully: %{public}s', JSON.stringify(data));
  12. }
  13. });
  14. } catch (err) {
  15. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
  16. }

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.

示例:

  1. import bundleManager from '@ohos.bundle.bundleManager';
  2. import hilog from '@ohos.hilog';
  3. let moduleName = 'entry';
  4. let extensionAbilityName = 'com.example.myapplication.extension';
  5. let metadataName = 'com.example.myapplication.metadata';
  6. try {
  7. bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName).then((data) => {
  8. hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
  9. }).catch(err => {
  10. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
  11. });
  12. } catch (err) {
  13. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
  14. }
  15. try {
  16. bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName).then((data) => {
  17. hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
  18. }).catch(err => {
  19. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
  20. });
  21. } catch (err) {
  22. hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
  23. }

ModuleType

标识模块类型。

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

名称

说明

ENTRY

1

应用的主模块。

FEATURE

2

应用的动态特性模块。

SHARED

3

应用的动态共享库模块。

BundleType

标识应用的类型。

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

名称

说明

APP

0

该Bundle是普通应用程序。

ATOMIC_SERVICE

1

该Bundle是元服务。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号