應(yīng)用信息查詢能力

2024-01-23 13:05 更新

本模塊提供應(yīng)用信息查詢能力,支持BundleInfo、ApplicationInfo、Ability、ExtensionAbility等信息的查詢

說明

本模塊首批接口從API version 9 開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

導(dǎo)入模塊

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

權(quán)限列表

權(quán)限

權(quán)限等級

描述

ohos.permission.GET_BUNDLE_INFO

normal

查詢指定應(yīng)用信息。

ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

system_basic

可查詢所有應(yīng)用信息。

ohos.permission.REMOVE_CACHE_FILES

system_basic

清理應(yīng)用緩存。

ohos.permission.CHANGE_ABILITY_ENABLED_STATE

system_basic

設(shè)置禁用使能所需的權(quán)限。

權(quán)限等級參考權(quán)限等級說明。

枚舉

BundleFlag

包信息標(biāo)志,指示需要獲取的包信息的內(nèi)容。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

GET_BUNDLE_INFO_DEFAULT

0x00000000

用于獲取默認(rèn)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的信息。它不能單獨(dú)使用,需要與GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。

GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY

0x00000008

用于獲取包含extensionAbility的bundleInfo,獲取的bundleInfo不包含signatureInfo、applicationInfo、ability 和permission的信息。它不能單獨(dú)使用,需要與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。它不能單獨(dú)使用,它需要與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

指示擴(kuò)展組件的類型。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

FORM

0

FormExtensionAbility:卡片擴(kuò)展能力,提供卡片開發(fā)能力。

WORK_SCHEDULER

1

WorkSchedulerExtensionAbility:延時任務(wù)擴(kuò)展能力,允許應(yīng)用在系統(tǒng)閑時執(zhí)行實時性不高的任務(wù)。

INPUT_METHOD

2

InputMethodExtensionAbility:輸入法擴(kuò)展能力,用于開發(fā)輸入法應(yīng)用。

SERVICE

3

ServiceExtensionAbility:后臺服務(wù)擴(kuò)展能力,提供后臺運(yùn)行并對外提供相應(yīng)能力。

僅對系統(tǒng)應(yīng)用開放。

ACCESSIBILITY

4

AccessibilityExtensionAbility:無障礙服務(wù)擴(kuò)展能力,支持訪問與操作前臺界面。

DATA_SHARE

5

DataShareExtensionAbility:數(shù)據(jù)共享擴(kuò)展能力,用于對外提供數(shù)據(jù)讀寫服務(wù)。

僅對系統(tǒng)應(yīng)用開放。

FILE_SHARE

6

FileShareExtensionAbility:文件共享擴(kuò)展能力,用于應(yīng)用間的文件分享。

預(yù)留能力,當(dāng)前暫未支持。

STATIC_SUBSCRIBER

7

StaticSubscriberExtensionAbility:靜態(tài)廣播擴(kuò)展能力,用于處理靜態(tài)事件,比如開機(jī)事件。

僅對系統(tǒng)應(yīng)用開放。

WALLPAPER

8

WallpaperExtensionAbility:壁紙擴(kuò)展能力,用于實現(xiàn)桌面壁紙。

預(yù)留能力,當(dāng)前暫未支持。

BACKUP

9

BackupExtensionAbility:數(shù)據(jù)備份擴(kuò)展能力,提供應(yīng)用數(shù)據(jù)和公共數(shù)據(jù)備份回復(fù)能力。

預(yù)留能力,當(dāng)前暫未支持。

WINDOW

10

WindowExtensionAbility:界面組合擴(kuò)展能力,允許系統(tǒng)應(yīng)用進(jìn)行跨應(yīng)用的界面拉起和嵌入。

僅對系統(tǒng)應(yīng)用開放。

ENTERPRISE_ADMIN

11

EnterpriseAdminExtensionAbility:企業(yè)設(shè)備管理擴(kuò)展能力,提供企業(yè)管理時處理管理事件的能力,比如設(shè)備上應(yīng)用安裝事件、鎖屏密碼輸入錯誤次數(shù)過多事件等。

僅對系統(tǒng)應(yīng)用開放。

THUMBNAIL

13

ThumbnailExtensionAbility:文件縮略圖擴(kuò)展能力,用于為文件提供圖標(biāo)縮略圖的能力。預(yù)留能力,當(dāng)前暫未支持。

PREVIEW

14

PreviewExtensionAbility:文件預(yù)覽擴(kuò)展能力,提供文件預(yù)覽的能力,其他應(yīng)用可以直接在應(yīng)用中嵌入顯示。

預(yù)留能力,當(dāng)前暫未支持。

UNSPECIFIED

255

不指定類型,配合queryExtensionAbilityInfo接口可以查詢所有類型的ExtensionAbility。

PermissionGrantState

指示權(quán)限授予狀態(tài)。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

PERMISSION_DENIED

-1

拒絕授予權(quán)限。

PERMISSION_GRANTED

0

授予權(quán)限。

SupportWindowMode

標(biāo)識該組件所支持的窗口模式。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

FULL_SCREEN

0

窗口支持全屏顯示。

SPLIT

1

窗口支持分屏顯示。

FLOATING

2

支持窗口化顯示。

LaunchType

指示組件的啟動方式。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

SINGLETON

0

ability的啟動模式,表示單實例。

MULTITON

1

ability的啟動模式,表示普通多實例。

SPECIFIED

2

ability的啟動模式,表示該ability內(nèi)部根據(jù)業(yè)務(wù)自己置頂多實例。

AbilityType

指示Ability組件的類型。

模型約束: 僅可在FA模型下使用

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

PAGE

1

表示基于Page模板開發(fā)的FA,用于提供與用戶交互的能力。

SERVICE

2

表示基于Service模板開發(fā)的PA,用于提供后臺運(yùn)行任務(wù)的能力。

DATA

3

表示基于Data模板開發(fā)的PA,用于對外部提供統(tǒng)一的數(shù)據(jù)訪問對象。

DisplayOrientation

標(biāo)識該Ability的顯示模式。該標(biāo)簽僅適用于page類型的Ability。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core。

名稱

說明

UNSPECIFIED

0

表示未定義方向模式,由系統(tǒng)判定。

LANDSCAPE

1

表示橫屏顯示模式。

PORTRAIT

2

表示豎屏顯示模式。

FOLLOW_RECENT

3

表示跟隨上一個顯示模式。

LANDSCAPE_INVERTED

4

表示反向橫屏顯示模式。

PORTRAIT_INVERTED

5

表示反向豎屏顯示模式。

AUTO_ROTATION

6

表示傳感器自動旋轉(zhuǎn)模式。

AUTO_ROTATION_LANDSCAPE

7

表示傳感器自動橫向旋轉(zhuǎn)模式。

AUTO_ROTATION_PORTRAIT

8

表示傳感器自動豎向旋轉(zhuǎn)模式。

AUTO_ROTATION_RESTRICTED

9

表示受開關(guān)控制的自動旋轉(zhuǎn)模式。

AUTO_ROTATION_LANDSCAPE_RESTRICTED

10

表述受開關(guān)控制的自動橫向旋轉(zhuǎn)模式。

AUTO_ROTATION_PORTRAIT_RESTRICTED

11

表示受開關(guān)控制的自動豎向旋轉(zhuǎn)模式。

LOCKED

12

表示鎖定模式。

接口

bundleManager.getBundleInfoForSelf

getBundleInfoForSelf(bundleFlags: number): Promise<BundleInfo>;

以異步方法根據(jù)給定的bundleFlags獲取當(dāng)前應(yīng)用的BundleInfo,使用Promise形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

bundleFlags

number

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

返回值:

類型

說明

Promise<BundleInfo>

Promise對象,返回當(dāng)前應(yīng)用的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;

以異步方法根據(jù)給定的bundleFlags獲取當(dāng)前應(yīng)用的BundleInfo,使用callback形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

bundleFlags

number

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

callback

AsyncCallback<BundleInfo>

回調(diào)函數(shù),當(dāng)獲取成功時,err為null,data為獲取到的當(dāng)前應(yīng)用的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;

以異步方法根據(jù)給定的moduleName、abilityName和metadataName獲取相應(yīng)配置文件的json格式字符串,使用callback形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

moduleName

string

表示應(yīng)用程序的moduleName。

abilityName

string

表示應(yīng)用程序的abilityName。

metadataName

string

表示應(yīng)用程序的metadataName。

callback

AsyncCallback<Array<string>>

回調(diào)函數(shù),當(dāng)獲取成功時,err為null,data為獲取到的Array<string>;否則為錯誤對象。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見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>>;

以異步方法根據(jù)給定的moduleName、abilityName和metadataName獲取相應(yīng)配置文件的json格式字符串,使用Promise形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

moduleName

string

表示應(yīng)用程序的moduleName。

abilityName

string

表示應(yīng)用程序的abilityName。

metadataName

string

表示應(yīng)用程序的metadataName。

返回值:

類型

說明

Promise<Array<string>>

Promise對象,返回Array<string>。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見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;

以異步方法根據(jù)給定的moduleName、extensionAbilityName和metadataName獲取相應(yīng)配置文件的json格式字符串,使用callback形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

moduleName

string

表示應(yīng)用程序的moduleName。

extensionAbilityName

string

表示應(yīng)用程序的extensionAbilityName。

metadataName

string

表示應(yīng)用程序的metadataName。

callback

AsyncCallback<Array<string>>

回調(diào)函數(shù),當(dāng)獲取成功時,err為null,data為獲取到的Array<string>;否則為錯誤對象。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見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>>;

以異步方法根據(jù)給定的moduleName、extensionAbilityName和metadataName獲取相應(yīng)配置文件的json格式字符串,使用Promise形式返回結(jié)果。

系統(tǒng)能力: SystemCapability.BundleManager.BundleFramework.Core

參數(shù):

參數(shù)名

類型

必填

說明

moduleName

string

表示應(yīng)用程序的moduleName。

extensionAbilityName

string

表示應(yīng)用程序的extensionAbilityName。

metadataName

string

表示應(yīng)用程序的metadataName。

返回值:

類型

說明

Promise<Array<string>>

Promise對象,返回Array<string>對象。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見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

標(biāo)識模塊類型。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core

名稱

說明

ENTRY

1

應(yīng)用的主模塊。

FEATURE

2

應(yīng)用的動態(tài)特性模塊。

SHARED

3

應(yīng)用的動態(tài)共享庫模塊。

BundleType

標(biāo)識應(yīng)用的類型。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.BundleManager.BundleFramework.Core

名稱

說明

APP

0

該Bundle是普通應(yīng)用程序。

ATOMIC_SERVICE

1

該Bundle是元服務(wù)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號