• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.bundleManager (bundleManager模块)
2
3本模块提供应用信息查询能力,支持[BundleInfo](js-apis-bundleManager-bundleInfo.md)、[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)、[AbilityInfo](js-apis-bundleManager-abilityInfo.md)、[ExtensionAbilityInfo](js-apis-bundleManager-extensionAbilityInfo.md)等信息的查询。
4
5> **说明:**
6> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8## 导入模块
9
10```ts
11import { bundleManager } from '@kit.AbilityKit';
12```
13
14## 权限列表
15
16| 权限                                       | 权限等级     | 描述            |
17| ------------------------------------------ | ------------ | ------------------|
18| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 允许查询应用的基本信息和其他敏感信息。 |
19
20权限等级参考[权限APL等级说明](../../security/AccessToken/app-permission-mgmt-overview.md#权限机制中的基本概念)。
21
22## BundleFlag
23
24包信息标志,指示需要获取的包信息的内容。
25
26 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
27
28| 名称                                          | 值         | 说明                                                         |
29| --------------------------------------------- | ---------- | ------------------------------------------------------------ |
30| GET_BUNDLE_INFO_DEFAULT                       | 0x00000000 | 用于获取默认bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
31| GET_BUNDLE_INFO_WITH_APPLICATION              | 0x00000001 | 用于获取包含applicationInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、hapModuleInfo、ability、extensionAbility和permission的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
32| GET_BUNDLE_INFO_WITH_HAP_MODULE               | 0x00000002 | 用于获取包含hapModuleInfo的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability、extensionAbility和permission的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
33| GET_BUNDLE_INFO_WITH_ABILITY                  | 0x00000004 | 用于获取包含ability的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、extensionAbility和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
34| GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY        | 0x00000008 | 用于获取包含extensionAbility的bundleInfo,获取的bundleInfo不包含signatureInfo、applicationInfo、ability 和permission的信息。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
35| GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION     | 0x00000010 | 用于获取包含permission的bundleInfo。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、extensionAbility和ability的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
36| 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一起使用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
37| GET_BUNDLE_INFO_WITH_DISABLE                  | 0x00000040 | 用于获取application被禁用的BundleInfo和被禁用的Ability信息。获取的bundleInfo不包含signatureInfo、applicationInfo、hapModuleInfo、ability、extensionAbility和permission的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
38| GET_BUNDLE_INFO_WITH_SIGNATURE_INFO           | 0x00000080 | 用于获取包含signatureInfo的bundleInfo。获取的bundleInfo不包含applicationInfo、hapModuleInfo、extensionAbility、ability和permission的信息。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
39| GET_BUNDLE_INFO_WITH_MENU<sup>11+</sup>       | 0x00000100 | 用于获取包含fileContextMenuConfig的bundleInfo。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
40| GET_BUNDLE_INFO_WITH_ROUTER_MAP<sup>12+</sup> | 0x00000200 | 用于获取包含routerMap的bundleInfo。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE一起使用。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
41| GET_BUNDLE_INFO_WITH_SKILL<sup>12+</sup>      | 0x00000800 | 用于获取包含skills的bundleInfo。它不能单独使用,需要与GET_BUNDLE_INFO_WITH_HAP_MODULE、GET_BUNDLE_INFO_WITH_ABILITY、GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY一起使用。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
42
43## ExtensionAbilityType
44
45指示扩展组件的类型。
46
47 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
48
49| 名称 | 值 | 说明 |
50|:----------------:|:---:|-----|
51| FORM             | 0   | [FormExtensionAbility](../apis-form-kit/js-apis-app-form-formExtensionAbility.md):卡片扩展能力,提供卡片开发能力。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
52| WORK_SCHEDULER   | 1   | [WorkSchedulerExtensionAbility](../apis-backgroundtasks-kit/js-apis-WorkSchedulerExtensionAbility.md):延时任务扩展能力,允许应用在系统闲时执行实时性不高的任务。 |
53| INPUT_METHOD     | 2   | [InputMethodExtensionAbility](../apis-ime-kit/js-apis-inputmethod-extension-ability.md):输入法扩展能力,用于开发输入法应用。 |
54|<!--DelRow--> SERVICE          | 3   | [ServiceExtensionAbility](js-apis-app-ability-serviceExtensionAbility-sys.md):后台服务扩展能力,提供后台运行并对外提供相应能力。|
55| ACCESSIBILITY    | 4   | <!--RP1-->[AccessibilityExtensionAbility](../apis-accessibility-kit/js-apis-application-accessibilityExtensionAbility.md)<!--RP1End-->:无障碍服务扩展能力,支持访问与操作前台界面。 |
56|<!--DelRow--> DATA_SHARE       | 5   | [DataShareExtensionAbility](../apis-arkdata/js-apis-application-dataShareExtensionAbility-sys.md):数据共享扩展能力,用于对外提供数据读写服务。 |
57|<!--DelRow--> FILE_SHARE       | 6   | FileShareExtensionAbility:文件共享扩展能力,用于应用间的文件分享。预留能力,仅系统应用支持。 |
58|<!--DelRow--> STATIC_SUBSCRIBER| 7   | [StaticSubscriberExtensionAbility](../apis-basic-services-kit/js-apis-application-staticSubscriberExtensionAbility-sys.md):静态广播扩展能力,用于处理静态事件,比如开机事件。 |
59|<!--DelRow--> WALLPAPER        | 8   | WallpaperExtensionAbility:壁纸扩展能力,用于实现桌面壁纸。预留能力,仅系统应用支持。 |
60| BACKUP           |  9  | [BackupExtensionAbility](../apis-core-file-kit/js-apis-application-backupExtensionAbility.md):数据备份扩展能力,提供应用数据的备份恢复能力。 |
61|<!--DelRow--> WINDOW     |  10 | [WindowExtensionAbility](../apis-arkui/js-apis-application-windowExtensionAbility-sys.md):界面组合扩展能力,允许系统应用进行跨应用的界面拉起和嵌入。 |
62| ENTERPRISE_ADMIN |  11 | [EnterpriseAdminExtensionAbility](../apis-mdm-kit/js-apis-EnterpriseAdminExtensionAbility.md):企业设备管理扩展能力,提供企业管理时处理管理事件的能力,比如设备上应用安装事件、锁屏密码输入错误次数过多事件等。 |
63|<!--DelRow--> THUMBNAIL        | 13  | ThumbnailExtensionAbility:文件缩略图扩展能力,用于为文件提供图标缩略图的能力。预留能力,仅系统应用支持。 |
64|<!--DelRow--> PREVIEW          | 14  | PreviewExtensionAbility:文件预览扩展能力,提供文件预览的能力,其他应用可以直接在应用中嵌入显示。预留能力,仅系统应用支持。 |
65|<!--DelRow--> PRINT<sup>10+</sup> | 15 | PrintExtensionAbility:文件打印扩展能力,提供应用打印照片、文档等办公场景。仅系统应用支持。 |
66| SHARE<sup>10+</sup> | 16 | [ShareExtensionAbility](js-apis-app-ability-shareExtensionAbility.md):提供分享业务能力,为开发者提供基于UIExtension的分享业务模板。 |
67|<!--DelRow--> PUSH<sup>10+</sup> | 17 | PushExtensionAbility:推送扩展能力,提供推送场景化消息能力。预留能力,仅系统应用支持。 |
68|<!--DelRow--> DRIVER<sup>10+</sup> | 18 | [DriverExtensionAbility](../apis-driverdevelopment-kit/js-apis-app-ability-driverExtensionAbility.md):驱动扩展能力,提供外设驱动扩展能力,仅系统应用支持。 |
69| ACTION<sup>10+</sup> | 19 | [ActionExtensionAbility](js-apis-app-ability-actionExtensionAbility.md):自定义服务扩展能力,为开发者提供基于UIExtension的自定义操作业务模板。 |
70|<!--DelRow--> ADS_SERVICE<sup>11+</sup> | 20 | AdsServiceExtensionAbility:广告服务扩展能力,对外提供后台自定义广告业务服务,仅系统应用支持。 |
71| EMBEDDED_UI<sup>12+</sup> | 21 | [EmbeddedUIExtensionAbility](js-apis-app-ability-embeddedUIExtensionAbility.md):嵌入式UI扩展能力,提供跨进程界面嵌入的能力。 |
72| INSIGHT_INTENT_UI<sup>12+</sup> | 22 | InsightIntentUIExtensionAbility:为开发者提供能被小艺意图调用,以窗口形态呈现内容的扩展能力。 |
73| FENCE<sup>18+</sup> | 24 | [FenceExtensionAbility](../apis-location-kit/js-apis-app-ability-FenceExtensionAbility.md):为开发者提供地理围栏相关的能力,继承自ExtensionAbility。 |
74| ASSET_ACCELERATION<sup>18+</sup> | 26 | AssetAccelerationExtensionAbility:资源预下载扩展能力,提供在设备闲时状态,进行后台资源预下载的能力。 |
75| UNSPECIFIED      | 255 | 不指定类型,配合queryExtensionAbilityInfo接口可以查询所有类型的ExtensionAbility。 |
76
77
78## PermissionGrantState
79
80指示权限授予状态。
81
82 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
83
84 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
85
86| 名称 | 值 | 说明 |
87|:----------------:|:---:|:---:|
88| PERMISSION_DENIED|  -1 | 拒绝授予权限。 |
89| PERMISSION_GRANTED |  0  |  授予权限。  |
90
91## SupportWindowMode
92
93标识该组件所支持的窗口模式。
94
95 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
96
97 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
98
99| 名称 | 值 | 说明 |
100|:----------------:|:---:|:---:|
101| FULL_SCREEN      | 0   | 窗口支持全屏显示。 |
102| SPLIT            | 1   | 窗口支持分屏显示。 |
103| FLOATING         | 2   | 支持窗口化显示。   |
104
105## LaunchType
106
107指示组件的启动方式。
108
109 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
110
111 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
112
113| 名称 | 值 | 说明 |
114|:----------------:|:---:|:---:|
115| SINGLETON        | 0   | ability的启动模式,表示单实例。 |
116| MULTITON         | 1   | ability的启动模式,表示普通多实例。 |
117| SPECIFIED        | 2   | ability的启动模式,表示该ability内部根据业务自己指定多实例。 |
118
119## AbilityType
120
121指示Ability组件的类型。
122
123 **模型约束:** 仅可在FA模型下使用。
124
125 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
126
127|  名称   | 值   |                            说明                            |
128| :-----: | ---- | :--------------------------------------------------------: |
129| PAGE    | 1    | UI界面类型的Ability。表示基于Page模板开发的FA,用于提供与用户交互的能力。        |
130| SERVICE | 2    | 后台服务类型的Ability,无UI界面。表示基于Service模板开发的PA,用于提供后台运行任务的能力。  |
131|  DATA   | 3    | 表示基于Data模板开发的PA,用于对外部提供统一的数据访问对象。 |
132
133## DisplayOrientation
134
135标识该Ability的显示模式。该标签仅适用于page类型的Ability。
136
137 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
138
139| 名称                               |值 |说明 |
140|:----------------------------------|---|---|
141| UNSPECIFIED                        |0 |表示未定义方向模式,由系统判定。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
142| LANDSCAPE                          |1 |表示横屏显示模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
143| PORTRAIT                           |2 |表示竖屏显示模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
144| FOLLOW_RECENT                      |3 |表示跟随上一个显示模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
145| LANDSCAPE_INVERTED                 |4 |表示反向横屏显示模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
146| PORTRAIT_INVERTED                  |5 |表示反向竖屏显示模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
147| AUTO_ROTATION                      |6 |表示传感器自动旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
148| AUTO_ROTATION_LANDSCAPE            |7 |表示传感器自动横向旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
149| AUTO_ROTATION_PORTRAIT             |8 |表示传感器自动竖向旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
150| AUTO_ROTATION_RESTRICTED           |9 |表示受开关控制的自动旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
151| AUTO_ROTATION_LANDSCAPE_RESTRICTED |10|表述受开关控制的自动横向旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
152| AUTO_ROTATION_PORTRAIT_RESTRICTED  |11|表示受开关控制的自动竖向旋转模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
153| LOCKED                             |12|表示锁定模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。|
154| AUTO_ROTATION_UNSPECIFIED<sup>12+</sup> |13|受开关控制和由系统判定的自动旋转模式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
155| FOLLOW_DESKTOP<sup>12+</sup> |14|跟随桌面的旋转模式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
156
157## CompatiblePolicy<sup>10+</sup>
158
159标识共享库的版本兼容类型。
160
161 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
162
163 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
164
165| 名称                   | 值   | 说明                             |
166| ---------------------- | ---- | -------------------------------- |
167| BACKWARD_COMPATIBILITY | 1    | 该字段表明共享库是向后兼容类型。 |
168
169## ModuleType
170
171标识模块类型。
172
173 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
174
175 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
176
177| 名称    | 值   | 说明                 |
178| ------- | ---- | -------------------- |
179| ENTRY   | 1    | 应用的主模块。   |
180| FEATURE | 2    | 应用的动态特性模块。 |
181| SHARED  | 3    | 应用的动态共享库模块。  |
182
183## BundleType
184
185标识应用的类型。
186
187 **原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
188
189 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
190
191| 名称           | 值   | 说明            |
192| -------------- | ---- | --------------- |
193| APP            | 0    | 该Bundle是应用。    |
194| ATOMIC_SERVICE | 1    | 该Bundle是原子化服务。 |
195
196## MultiAppModeType<sup>12+</sup>
197标识应用多开的模式类型。
198
199 **系统能力:** SystemCapability.BundleManager.BundleFramework.Core
200
201| 名称 | 值 | 说明 |
202|:----------------:|:---:|:---:|
203| UNSPECIFIED|  0 | 未指定类型。 |
204| MULTI_INSTANCE |  1  | 多实例模式。常驻进程不支持该字段。  |
205| APP_CLONE |  2  |  分身模式。  |
206
207## bundleManager.getBundleInfoForSelf
208
209getBundleInfoForSelf(bundleFlags: number): Promise\<BundleInfo>
210
211根据给定的bundleFlags获取当前应用的BundleInfo,使用Promise异步回调。
212
213**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
214
215**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
216
217**参数:**
218
219| 参数名     | 类型   | 必填 | 说明                |
220| ----------- | ------ | ---- | --------------------- |
221| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。 |
222
223**返回值:**
224
225| 类型                                                        | 说明                                  |
226| ----------------------------------------------------------- | ------------------------------------- |
227| Promise\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | Promise对象,返回当前应用的BundleInfo。|
228
229**错误码:**
230
231以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
232
233| 错误码ID | 错误信息                                                     |
234| -------- | ------------------------------------------------------------ |
235| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
236
237**示例:**
238
239```ts
240// 额外获取带有metadataArray信息的appInfo
241import { bundleManager } from '@kit.AbilityKit';
242import { BusinessError } from '@kit.BasicServicesKit';
243import { hilog } from '@kit.PerformanceAnalysisKit';
244
245let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
246
247try {
248  bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
249    hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data));
250  }).catch((err: BusinessError) => {
251    hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
252  });
253} catch (err) {
254  let message = (err as BusinessError).message;
255  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
256}
257```
258
259## bundleManager.getBundleInfoForSelf
260
261getBundleInfoForSelf(bundleFlags: number, callback: AsyncCallback\<BundleInfo>): void
262
263根据给定的bundleFlags获取当前应用的BundleInfo,使用callback异步回调。
264
265**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
266
267**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
268
269**参数:**
270
271| 参数名     | 类型   | 必填 | 说明                |
272| ----------- | ------ | ---- | --------------------- |
273| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。 |
274| callback | AsyncCallback\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | 是 | 回调函数,当获取成功时,err为null,data为获取到的当前应用的BundleInfo;否则为错误对象。 |
275
276**错误码:**
277
278以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
279
280| 错误码ID | 错误信息                                                     |
281| -------- | ------------------------------------------------------------ |
282| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
283
284**示例:**
285
286```ts
287// 额外获取带有permissions信息的abilitiesInfo
288import { bundleManager } from '@kit.AbilityKit';
289import { BusinessError } from '@kit.BasicServicesKit';
290import { hilog } from '@kit.PerformanceAnalysisKit';
291
292let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
293
294try {
295  bundleManager.getBundleInfoForSelf(bundleFlags, (err, data) => {
296    if (err) {
297      hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
298    } else {
299      hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully: %{public}s', JSON.stringify(data));
300    }
301  });
302} catch (err) {
303  let message = (err as BusinessError).message;
304  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', message);
305}
306```
307
308## bundleManager.getProfileByAbility
309
310getProfileByAbility(moduleName: string, abilityName: string, metadataName: string, callback: AsyncCallback\<Array\<string\>\>): void
311
312根据给定的moduleName、abilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,使用callback异步回调。
313
314>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
315
316**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
317
318**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
319
320**参数:**
321
322| 参数名       | 类型                          | 必填 | 说明                                                         |
323| ------------ | ----------------------------- | ---- | ------------------------------------------------------------ |
324| moduleName   | string                        | 是   | 表示Module名称。                                     |
325| abilityName  | string                        | 是   | 表示UIAbility组件的名称。                                    |
326| metadataName | string                        | 是   | 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name。                                  |
327| callback     | AsyncCallback<Array\<string>> | 是   | 回调函数,当获取成功时,err为null,data为获取到的Array\<string>;否则为错误对象。 |
328
329**错误码:**
330
331以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
332
333| 错误码ID | 错误信息                                                     |
334| -------- | ------------------------------------------------------------ |
335| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
336| 17700002 | The specified moduleName is not existed.                      |
337| 17700003 | The specified abilityName is not existed.                     |
338| 17700024 | Failed to get the profile because there is no profile in the HAP. |
339| 17700026 | The specified bundle is disabled.                            |
340| 17700029 | The specified ability is disabled.                            |
341
342**示例:**
343
344```ts
345import { bundleManager } from '@kit.AbilityKit';
346import { BusinessError } from '@kit.BasicServicesKit';
347import { hilog } from '@kit.PerformanceAnalysisKit';
348
349let moduleName = 'entry';
350let abilityName = 'EntryAbility';
351let metadataName = 'ability_metadata';
352
353try {
354  bundleManager.getProfileByAbility(moduleName, abilityName, metadataName, (err, data) => {
355    if (err) {
356      hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
357    } else {
358      hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully: %{public}s', JSON.stringify(data));
359    }
360  });
361} catch (err) {
362  let message = (err as BusinessError).message;
363  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
364}
365```
366
367## bundleManager.getProfileByAbility
368
369getProfileByAbility(moduleName: string, abilityName: string, metadataName?: string): Promise\<Array\<string\>\>
370
371根据给定的moduleName、abilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,使用Promise异步回调。
372
373>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
374
375**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
376
377**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
378
379**参数:**
380
381| 参数名       | 类型   | 必填 | 说明                       |
382| ------------ | ------ | ---- | -------------------------- |
383| moduleName   | string | 是   | 表示Module名称。   |
384| abilityName  | string | 是   | 表示UIAbility组件的名称。  |
385| metadataName | string | 否   | 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name,默认值为空。 |
386
387**返回值:**
388
389| 类型                    | 说明                            |
390| ----------------------- | ------------------------------- |
391| Promise<Array\<string>> | Promise对象,返回Array\<string>。 |
392
393**错误码:**
394
395以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
396
397| 错误码ID | 错误信息                                                     |
398| -------- | ------------------------------------------------------------ |
399| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
400| 17700002 | The specified moduleName is not existed.                      |
401| 17700003 | The specified abilityName is not existed.                     |
402| 17700024 | Failed to get the profile because there is no profile in the HAP. |
403| 17700026 | The specified bundle is disabled.                            |
404| 17700029 | The specified ability is disabled.                            |
405
406**示例:**
407
408```ts
409import { bundleManager } from '@kit.AbilityKit';
410import { BusinessError } from '@kit.BasicServicesKit';
411import { hilog } from '@kit.PerformanceAnalysisKit';
412
413let moduleName = 'entry';
414let abilityName = 'EntryAbility';
415
416try {
417  // 通过模块名称和ability名称获取相应配置文件的json格式字符串信息
418  bundleManager.getProfileByAbility(moduleName, abilityName).then((data) => {
419    hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
420  }).catch((err: BusinessError) => {
421    hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
422  });
423} catch (err) {
424  let message = (err as BusinessError).message;
425  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
426}
427```
428
429```ts
430import { bundleManager } from '@kit.AbilityKit';
431import { BusinessError } from '@kit.BasicServicesKit';
432import { hilog } from '@kit.PerformanceAnalysisKit';
433
434let moduleName = 'entry';
435let abilityName = 'EntryAbility';
436let metadataName = 'ability_metadata';
437
438try {
439  // 通过模块名称,ability名称和UIAbility组件的元信息名称获取相应配置文件的json格式字符串信息
440  bundleManager.getProfileByAbility(moduleName, abilityName, metadataName).then((data) => {
441    hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data));
442  }).catch((err: BusinessError) => {
443    hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message);
444  });
445} catch (err) {
446  let message = (err as BusinessError).message;
447  hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', message);
448}
449```
450
451## bundleManager.getProfileByAbilitySync<sup>10+</sup>
452
453getProfileByAbilitySync(moduleName: string, abilityName: string, metadataName?: string): Array\<string\>
454
455以同步方法根据给定的moduleName、abilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,返回对象为string数组。
456
457>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
458
459**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
460
461**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
462
463**参数:**
464
465| 参数名       | 类型   | 必填 | 说明                       |
466| ------------ | ------ | ---- | -------------------------- |
467| moduleName   | string | 是   | 表示Module名称。   |
468| abilityName  | string | 是   | 表示UIAbility组件的名称。  |
469| metadataName | string | 否   | 表示UIAbility组件的元信息名称,即module.json5配置文件中abilities标签下的metadata标签的name,默认值为空。 |
470
471**返回值:**
472
473| 类型                    | 说明                            |
474| ----------------------- | ------------------------------- |
475| Array\<string> | 数组对象,返回Array\<string>。 |
476
477**错误码:**
478
479以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
480
481| 错误码ID | 错误信息                                                     |
482| -------- | ------------------------------------------------------------ |
483| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
484| 17700002 | The specified moduleName is not existed.                      |
485| 17700003 | The specified abilityName is not existed.                     |
486| 17700024 | Failed to get the profile because there is no profile in the HAP. |
487| 17700026 | The specified bundle is disabled.                            |
488| 17700029 | The specified ability is disabled.                            |
489
490**示例:**
491
492```ts
493import { bundleManager } from '@kit.AbilityKit';
494import { BusinessError } from '@kit.BasicServicesKit';
495import { hilog } from '@kit.PerformanceAnalysisKit';
496
497let moduleName = 'entry';
498let abilityName = 'EntryAbility';
499
500try {
501  // 通过模块名称和ability名称获取相应配置文件的json格式字符串信息
502  let data = bundleManager.getProfileByAbilitySync(moduleName, abilityName);
503  hilog.info(0x0000, 'testTag', 'getProfileByAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
504} catch (err) {
505  let message = (err as BusinessError).message;
506  hilog.error(0x0000, 'testTag', 'getProfileByAbilitySync failed. Cause: %{public}s', message);
507}
508```
509
510```ts
511import { bundleManager } from '@kit.AbilityKit';
512import { BusinessError } from '@kit.BasicServicesKit';
513import { hilog } from '@kit.PerformanceAnalysisKit';
514
515let moduleName: string = 'entry';
516let abilityName: string = 'EntryAbility';
517let metadataName: string = 'ability_metadata';
518
519try {
520  // 通过模块名称,ability名称和UIAbility组件的元信息名称获取相应配置文件的json格式字符串信息
521  let data = bundleManager.getProfileByAbilitySync(moduleName, abilityName, metadataName);
522  hilog.info(0x0000, 'testTag', 'getProfileByAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
523} catch (err) {
524  let message = (err as BusinessError).message;
525  hilog.error(0x0000, 'testTag', 'getProfileByAbilitySync failed. Cause: %{public}s', message);
526}
527```
528
529## bundleManager.getProfileByExtensionAbility
530
531getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName: string, callback: AsyncCallback\<Array\<string\>\>): void
532
533根据给定的moduleName、extensionAbilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,使用callback异步回调。
534
535>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
536
537**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
538
539**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
540
541**参数:**
542
543| 参数名                 | 类型                          | 必填 | 说明                                                         |
544| -------------------- | ----------------------------- | ---- | ------------------------------------------------------------ |
545| moduleName           | string                        | 是   | 表示Module名称。                                   |
546| extensionAbilityName | string                        | 是   | 表示ExtensionAbility组件的名称。                         |
547| metadataName         | string                        | 是   | 表示ExtensionAbility组件的名称。组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name。                                 |
548| callback             | AsyncCallback<Array\<string>> | 是   | 回调函数,当获取成功时,err为null,data为获取到的Array\<string>;否则为错误对象。 |
549
550**错误码:**
551
552以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
553
554| 错误码ID | 错误信息                                                     |
555| -------- | ------------------------------------------------------------ |
556| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
557| 17700002 | The specified moduleName is not existed.                      |
558| 17700003 | The specified extensionAbilityName not existed.            |
559| 17700024 | Failed to get the profile because there is no profile in the HAP. |
560| 17700026 | The specified bundle is disabled.                            |
561
562**示例:**
563
564```ts
565import { bundleManager } from '@kit.AbilityKit';
566import { BusinessError } from '@kit.BasicServicesKit';
567import { hilog } from '@kit.PerformanceAnalysisKit';
568
569let moduleName = 'entry';
570let extensionAbilityName = 'com.example.myapplication.extension';
571let metadataName = 'ability_metadata';
572
573try {
574  bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName, (err, data) => {
575    if (err) {
576      hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message);
577    } else {
578      hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully: %{public}s', JSON.stringify(data));
579    }
580  });
581} catch (err) {
582  let message = (err as BusinessError).message;
583  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', message);
584}
585```
586
587## bundleManager.getProfileByExtensionAbility
588
589getProfileByExtensionAbility(moduleName: string, extensionAbilityName: string, metadataName?: string): Promise\<Array\<string\>\>
590
591根据给定的moduleName、extensionAbilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,使用Promise异步回调。
592
593>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
594
595**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
596
597**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
598
599**参数:**
600
601| 参数名                 | 类型   | 必填 | 说明                               |
602| -------------------- | ------ | ---- | ---------------------------------- |
603| moduleName           | string | 是   | 表示Module名称。           |
604| extensionAbilityName | string | 是   | 表示ExtensionAbility组件的名称。 |
605| metadataName         | string | 否   | 表示ExtensionAbility组件的名称。组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name,默认值为空。         |
606
607**返回值:**
608
609| 类型                    | 说明                                |
610| ----------------------- | ----------------------------------- |
611| Promise<Array\<string>> | Promise对象,返回Array\<string>对象。 |
612
613**错误码:**
614
615以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
616
617| 错误码ID | 错误信息                                                     |
618| -------- | ------------------------------------------------------------ |
619| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
620| 17700002 | The specified moduleName is not existed.                      |
621| 17700003 | The specified extensionAbilityName not existed.            |
622| 17700024 | Failed to get the profile because there is no profile in the HAP. |
623| 17700026 | The specified bundle is disabled.                            |
624
625**示例:**
626
627```ts
628import { bundleManager } from '@kit.AbilityKit';
629import { BusinessError } from '@kit.BasicServicesKit';
630import { hilog } from '@kit.PerformanceAnalysisKit';
631
632let moduleName = 'entry';
633let extensionAbilityName = 'com.example.myapplication.extension';
634let metadataName = 'ability_metadata';
635
636try {
637  bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName).then((data) => {
638    hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
639  }).catch((err: BusinessError) => {
640    hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
641  });
642} catch (err) {
643  let message = (err as BusinessError).message;
644  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', message);
645}
646
647try {
648  bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName).then((data) => {
649    hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data));
650  }).catch((err: BusinessError) => {
651    hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message);
652  });
653} catch (err) {
654  let message = (err as BusinessError).message;
655  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', message);
656}
657```
658
659## bundleManager.getProfileByExtensionAbilitySync<sup>10+</sup>
660
661getProfileByExtensionAbilitySync(moduleName: string, extensionAbilityName: string, metadataName?: string): Array\<string\>
662
663以同步方法根据给定的moduleName、extensionAbilityName和metadataName(module.json中[metadata标签](../../quick-start/module-configuration-file.md#metadata标签)下的name)获取相应配置文件的json格式字符串,返回对象为string数组。
664
665>如果配置文件信息采用了资源引用格式,则返回值将保持资源引用格式(例如 $string:res_id),开发者可以通过资源管理模块的相关接口,来获取引用的资源。
666
667**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
668
669**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
670
671**参数:**
672
673| 参数名                 | 类型   | 必填 | 说明                               |
674| -------------------- | ------ | ---- | ---------------------------------- |
675| moduleName           | string | 是   | 表示Module名称。           |
676| extensionAbilityName | string | 是   | 表示ExtensionAbility组件的名称。 |
677| metadataName         | string | 否   | 表示ExtensionAbility组件的名称。组件的元信息名称,即module.json5配置文件中extensionAbilities标签下的metadata标签的name,默认值为空。         |
678
679**返回值:**
680
681| 类型                    | 说明                                |
682| ----------------------- | ----------------------------------- |
683| Array\<string> | 返回Array\<string>对象。 |
684
685**错误码:**
686
687以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
688
689| 错误码ID | 错误信息                                                     |
690| -------- | ------------------------------------------------------------ |
691| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
692| 17700002 | The specified moduleName is not existed.                      |
693| 17700003 | The specified extensionAbilityName not existed.            |
694| 17700024 | Failed to get the profile because there is no profile in the HAP. |
695| 17700026 | The specified bundle is disabled.                            |
696
697**示例:**
698
699```ts
700import { bundleManager } from '@kit.AbilityKit';
701import { BusinessError } from '@kit.BasicServicesKit';
702import { hilog } from '@kit.PerformanceAnalysisKit';
703
704let moduleName = 'entry';
705let extensionAbilityName = 'com.example.myapplication.extension';
706let metadataName = 'ability_metadata';
707
708try {
709  let data = bundleManager.getProfileByExtensionAbilitySync(moduleName, extensionAbilityName);
710  hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
711} catch (err) {
712  let message = (err as BusinessError).message;
713  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbilitySync failed. Cause: %{public}s', message);
714}
715
716try {
717  let data = bundleManager.getProfileByExtensionAbilitySync(moduleName, extensionAbilityName, metadataName);
718  hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbilitySync successfully. Data: %{public}s', JSON.stringify(data));
719} catch (err) {
720  let message = (err as BusinessError).message;
721  hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbilitySync failed. Cause: %{public}s', message);
722}
723```
724
725## bundleManager.getBundleInfoForSelfSync<sup>10+</sup>
726
727getBundleInfoForSelfSync(bundleFlags: number): BundleInfo
728
729以同步方法根据给定的bundleFlags获取当前应用的BundleInfo。
730
731**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
732
733**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
734
735**参数:**
736
737| 参数名     | 类型   | 必填 | 说明                |
738| ----------- | ------ | ---- | --------------------- |
739| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。 |
740
741**返回值:**
742
743| 类型                                              | 说明                 |
744| ------------------------------------------------- | -------------------- |
745| [BundleInfo](js-apis-bundleManager-bundleInfo.md) | 返回BundleInfo对象。 |
746
747**错误码:**
748
749以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
750
751| 错误码ID | 错误信息                                                     |
752| -------- | ------------------------------------------------------------ |
753| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
754
755**示例:**
756
757```ts
758import { bundleManager } from '@kit.AbilityKit';
759import { BusinessError } from '@kit.BasicServicesKit';
760import { hilog } from '@kit.PerformanceAnalysisKit';
761
762let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
763
764try {
765  let data = bundleManager.getBundleInfoForSelfSync(bundleFlags);
766  hilog.info(0x0000, 'testTag', 'getBundleInfoForSelfSync successfully: %{public}s', JSON.stringify(data));
767} catch (err) {
768  let message = (err as BusinessError).message;
769  hilog.error(0x0000, 'testTag', 'getBundleInfoForSelfSync failed: %{public}s', message);
770}
771```
772
773## bundleManager.canOpenLink<sup>12+</sup>
774
775canOpenLink(link: string): boolean
776
777查询给定的链接是否可以打开。指定链接的scheme需要在module.json文件的querySchemes字段下配置。
778
779**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
780
781**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
782
783**参数:**
784
785| 参数名     | 类型   | 必填 | 说明                |
786| ----------- | ------ | ---- | --------------------- |
787| link | string | 是   | 表示需要查询的链接。 |
788
789**返回值:**
790
791| 类型                                              | 说明                 |
792| ------------------------------------------------- | -------------------- |
793| boolean | 返回true表示给定的链接可以打开,返回false表示给定的链接不能打开。 |
794
795**错误码:**
796
797以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
798
799| 错误码ID | 错误信息                                                     |
800| -------- | ------------------------------------------------------------ |
801| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
802| 17700055 | The specified link is invalid.                      |
803| 17700056 | The scheme of the specified link is not in the querySchemes.        |
804
805**示例:**
806
807```ts
808import { bundleManager } from '@kit.AbilityKit';
809import { BusinessError } from '@kit.BasicServicesKit';
810import { hilog } from '@kit.PerformanceAnalysisKit';
811
812try {
813  let link = 'welink://';
814  let data = bundleManager.canOpenLink(link);
815  hilog.info(0x0000, 'testTag', 'canOpenLink successfully: %{public}s', JSON.stringify(data));
816} catch (err) {
817  let message = (err as BusinessError).message;
818  hilog.error(0x0000, 'testTag', 'canOpenLink failed: %{public}s', message);
819}
820```
821
822## bundleManager.getLaunchWant<sup>13+</sup>
823
824getLaunchWant(): Want
825
826获取自身用于启动应用程序的Want参数。
827
828**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
829
830**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
831
832**返回值:**
833
834| 类型                                | 说明                                        |
835| ----------------------------------- | ------------------------------------------- |
836| [Want](js-apis-app-ability-want.md) | 返回包含Bundle名称和Ability名称的Want对象。 |
837
838**错误码:**
839
840以下错误码的详细介绍请参见[ohos.bundle错误码](errorcode-bundle.md)。
841
842| 错误码ID | 错误信息                      |
843| -------- | ----------------------------- |
844| 17700072 | The launch want is not found. |
845
846**示例:**
847
848```ts
849import { BusinessError } from '@kit.BasicServicesKit';
850import { bundleManager } from '@kit.AbilityKit';
851import { hilog } from '@kit.PerformanceAnalysisKit';
852
853try {
854  let want = bundleManager.getLaunchWant();
855  hilog.info(0x0000, 'testTag', 'getLaunchWant ability name: %{public}s', want.abilityName);
856  hilog.info(0x0000, 'testTag', 'getLaunchWant bundle name: %{public}s', want.bundleName);
857} catch (error) {
858  let message = (error as BusinessError).message;
859  hilog.error(0x0000, 'testTag', 'getLaunchWant failed: %{public}s', message);
860}
861```
862
863## bundleManager.getBundleInfo<sup>14+</sup>
864
865getBundleInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback\<BundleInfo>): void
866
867根据给定的bundleName、bundleFlags和userId获取BundleInfo,使用callback异步回调。
868
869获取调用方自己的信息时不需要权限。
870
871**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
872
873**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
874
875**参数:**
876
877| 参数名  | 类型   | 必填 | 说明                       |
878| ----------- | ------ | ---- | ---------------------------- |
879| bundleName  | string | 是   | 表示要查询的应用Bundle名称。 |
880| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。|
881| userId      | number | 是   | 表示用户ID。  |
882| callback | AsyncCallback\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | 是 | 回调函数,当获取成功时,err为null,data为获取到的bundleInfo;否则为错误对象。 |
883
884**错误码:**
885
886以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
887
888| 错误码ID | 错误信息                              |
889| -------- | ------------------------------------- |
890| 201 | Permission denied. |
891| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
892| 17700001 | The specified bundleName is not found. |
893| 17700004 | The specified user ID is not found.     |
894| 17700026 | The specified bundle is disabled.     |
895
896**示例:**
897
898```ts
899// 额外获取AbilityInfo
900import { bundleManager } from '@kit.AbilityKit';
901import { BusinessError } from '@kit.BasicServicesKit';
902import { hilog } from '@kit.PerformanceAnalysisKit';
903let bundleName = 'com.example.myapplication';
904let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY;
905let userId = 100;
906
907try {
908    bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => {
909        if (err) {
910            hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message);
911        } else {
912            hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data));
913        }
914    });
915} catch (err) {
916    let message = (err as BusinessError).message;
917    hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', message);
918}
919```
920
921```ts
922// 额外获取ApplicationInfo中的metadata
923import { bundleManager } from '@kit.AbilityKit';
924import { BusinessError } from '@kit.BasicServicesKit';
925import { hilog } from '@kit.PerformanceAnalysisKit';
926let bundleName = 'com.example.myapplication';
927let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
928let userId = 100;
929
930try {
931    bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => {
932        if (err) {
933            hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message);
934        } else {
935            hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data));
936        }
937    });
938} catch (err) {
939    let message = (err as BusinessError).message;
940    hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', message);
941}
942```
943
944## bundleManager.getBundleInfo<sup>14+</sup>
945
946getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\<BundleInfo>): void
947
948根据给定的bundleName和bundleFlags获取BundleInfo,使用callback异步回调。
949
950获取调用方自己的信息时不需要权限。
951
952**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
953
954**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
955
956**参数:**
957
958| 参数名     | 类型   | 必填 | 说明                       |
959| ----------- | ------ | ---- | ---------------------------- |
960| bundleName  | string | 是   | 表示要查询的应用Bundle名称。 |
961| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。|
962| callback | AsyncCallback\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | 是 | 回调函数,当获取成功时,err为null,data为获取到的BundleInfo;否则为错误对象。 |
963
964**错误码:**
965
966以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
967
968| 错误码ID | 错误信息                              |
969| -------- | ------------------------------------- |
970| 201 | Permission denied. |
971| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
972| 17700001 | The specified bundleName is not found. |
973| 17700026 | The specified bundle is disabled.     |
974
975**示例:**
976
977```ts
978// 额外获取extensionAbility
979import { bundleManager } from '@kit.AbilityKit';
980import { BusinessError } from '@kit.BasicServicesKit';
981import { hilog } from '@kit.PerformanceAnalysisKit';
982let bundleName = 'com.example.myapplication';
983let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY;
984
985try {
986    bundleManager.getBundleInfo(bundleName, bundleFlags, (err, data) => {
987        if (err) {
988            hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message);
989        } else {
990            hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data));
991        }
992    });
993} catch (err) {
994    let message = (err as BusinessError).message;
995    hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', message);
996}
997```
998
999## bundleManager.getBundleInfo<sup>14+</sup>
1000
1001getBundleInfo(bundleName: string, bundleFlags: number, userId?: number): Promise\<BundleInfo>
1002
1003根据给定的bundleName、bundleFlags和userId获取BundleInfo,使用Promise异步回调。
1004
1005获取调用方自己的信息时不需要权限。
1006
1007**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1008
1009**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1010
1011**参数:**
1012
1013| 参数名     | 类型   | 必填 | 说明                       |
1014| ----------- | ------ | ---- | ---------------------------- |
1015| bundleName  | string | 是   | 表示要查询的应用Bundle名称。 |
1016| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 指定返回的BundleInfo所包含的信息。       |
1017| userId      | number | 否   | 表示用户ID,默认值:调用方所在用户,取值范围:大于等于0。  |
1018
1019**返回值:**
1020
1021| 类型                                                        | 说明                        |
1022| ----------------------------------------------------------- | --------------------------- |
1023| Promise\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | Promise对象,返回BundleInfo。 |
1024
1025**错误码:**
1026
1027以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1028
1029| 错误码ID | 错误信息                            |
1030| -------- | --------------------------------------|
1031| 201 | Permission denied. |
1032| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1033| 17700001 | The specified bundleName is not found. |
1034| 17700004 | The specified user ID is not found.     |
1035| 17700026 | The specified bundle is disabled.     |
1036
1037**示例:**
1038
1039```ts
1040// 额外获取ApplicationInfo和SignatureInfo
1041import { bundleManager } from '@kit.AbilityKit';
1042import { BusinessError } from '@kit.BasicServicesKit';
1043import { hilog } from '@kit.PerformanceAnalysisKit';
1044let bundleName = 'com.example.myapplication';
1045let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
1046let userId = 100;
1047
1048try {
1049    bundleManager.getBundleInfo(bundleName, bundleFlags, userId).then((data) => {
1050        hilog.info(0x0000, 'testTag', 'getBundleInfo successfully. Data: %{public}s', JSON.stringify(data));
1051    }).catch((err: BusinessError) => {
1052        hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message);
1053    });
1054} catch (err) {
1055    let message = (err as BusinessError).message;
1056    hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', message);
1057}
1058```
1059
1060```ts
1061import { bundleManager } from '@kit.AbilityKit';
1062import { BusinessError } from '@kit.BasicServicesKit';
1063import { hilog } from '@kit.PerformanceAnalysisKit';
1064let bundleName = 'com.example.myapplication';
1065let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
1066
1067try {
1068    bundleManager.getBundleInfo(bundleName, bundleFlags).then((data) => {
1069        hilog.info(0x0000, 'testTag', 'getBundleInfo successfully. Data: %{public}s', JSON.stringify(data));
1070    }).catch((err: BusinessError) => {
1071        hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message);
1072    });
1073} catch (err) {
1074    let message = (err as BusinessError).message;
1075    hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', message);
1076}
1077
1078```
1079
1080## bundleManager.getBundleInfoSync<sup>14+</sup>
1081
1082getBundleInfoSync(bundleName: string, bundleFlags: number, userId: number): BundleInfo
1083
1084以同步方法根据给定的bundleName、bundleFlags和userId获取BundleInfo。
1085
1086获取调用方自己的信息时不需要权限。
1087
1088**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1089
1090**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1091
1092**参数:**
1093
1094| 参数名       | 类型   | 必填 | 说明                                                     |
1095| ----------- | ------ | ---- | -------------------------------------------------------- |
1096| bundleName  | string | 是   | 表示应用程序的bundleName。                                 |
1097| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 表示用于指定将返回的BundleInfo对象中包含的信息的标志。 |
1098| userId      | number | 是   | 表示用户ID。                                             |
1099
1100**返回值:**
1101
1102| 类型       | 说明                 |
1103| ---------- | -------------------- |
1104| [BundleInfo](js-apis-bundleManager-bundleInfo.md) | 返回BundleInfo对象。 |
1105
1106**错误码:**
1107
1108以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1109
1110| 错误码ID | 错误信息                             |
1111| -------- | ------------------------------------- |
1112| 201 | Permission denied. |
1113| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1114| 17700001 | The specified bundleName is not found. |
1115| 17700004 | The specified user ID is not found.     |
1116| 17700026 | The specified bundle is disabled.     |
1117
1118**示例:**
1119
1120```ts
1121import { bundleManager } from '@kit.AbilityKit';
1122import { BusinessError } from '@kit.BasicServicesKit';
1123import { hilog } from '@kit.PerformanceAnalysisKit';
1124let bundleName = 'com.example.myapplication';
1125let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
1126let userId = 100;
1127
1128try {
1129    let data = bundleManager.getBundleInfoSync(bundleName, bundleFlags, userId);
1130    hilog.info(0x0000, 'testTag', 'getBundleInfoSync successfully: %{public}s', JSON.stringify(data));
1131} catch (err) {
1132    let message = (err as BusinessError).message;
1133    hilog.error(0x0000, 'testTag', 'getBundleInfoSync failed: %{public}s', message);
1134}
1135```
1136
1137## bundleManager.getBundleInfoSync<sup>14+</sup>
1138
1139getBundleInfoSync(bundleName: string, bundleFlags: number): BundleInfo
1140
1141以同步方法根据给定的bundleName、bundleFlags获取BundleInfo。
1142
1143获取调用方自己的信息时不需要权限。
1144
1145**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1146
1147**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1148
1149**参数:**
1150
1151| 参数名      | 类型                  | 必填 | 说明                                                   |
1152| ----------- | --------------------- | ---- | ------------------------------------------------------ |
1153| bundleName  | string                | 是   | 表示应用程序的bundleName。                             |
1154| [bundleFlags](js-apis-bundleManager.md#bundleflag) | number | 是   | 表示用于指定将返回的BundleInfo对象中包含的信息的标志。 |
1155
1156**返回值:**
1157
1158| 类型                                              | 说明                 |
1159| ------------------------------------------------- | -------------------- |
1160| [BundleInfo](js-apis-bundleManager-bundleInfo.md) | 返回BundleInfo对象。 |
1161
1162**错误码:**
1163
1164以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1165
1166| 错误码ID | 错误信息                               |
1167| -------- | -------------------------------------- |
1168| 201 | Permission denied. |
1169| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1170| 17700001 | The specified bundleName is not found. |
1171| 17700026 | The specified bundle is disabled.     |
1172
1173**示例:**
1174
1175```ts
1176import { bundleManager } from '@kit.AbilityKit';
1177import { BusinessError } from '@kit.BasicServicesKit';
1178import { hilog } from '@kit.PerformanceAnalysisKit';
1179let bundleName = 'com.example.myapplication';
1180let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION;
1181try {
1182    let data = bundleManager.getBundleInfoSync(bundleName, bundleFlags);
1183    hilog.info(0x0000, 'testTag', 'getBundleInfoSync successfully: %{public}s', JSON.stringify(data));
1184} catch (err) {
1185    let message = (err as BusinessError).message;
1186    hilog.error(0x0000, 'testTag', 'getBundleInfoSync failed: %{public}s', message);
1187}
1188```
1189
1190## bundleManager.getBundleNameByUid<sup>14+</sup>
1191
1192getBundleNameByUid(uid: number, callback: AsyncCallback\<string>): void
1193
1194根据给定的uid获取对应的bundleName,使用callback异步回调。
1195
1196**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1197
1198**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1199
1200**参数:**
1201
1202| 参数名   | 类型                   | 必填 | 说明                                                         |
1203| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
1204| uid      | number                 | 是   | 表示应用程序的UID。                                            |
1205| callback | AsyncCallback\<string> | 是   | 回调函数,当获取成功时,err为null,data为获取到的BundleName;否则为错误对象。 |
1206
1207**错误码:**
1208
1209以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1210
1211| 错误码ID | 错误信息            |
1212| -------- | --------------------- |
1213| 201 | Permission denied. |
1214| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1215| 17700021 | The uid is not found. |
1216
1217**示例:**
1218
1219```ts
1220import { bundleManager } from '@kit.AbilityKit';
1221import { BusinessError } from '@kit.BasicServicesKit';
1222import { hilog } from '@kit.PerformanceAnalysisKit';
1223let uid = 20010005;
1224try {
1225    bundleManager.getBundleNameByUid(uid, (err, data) => {
1226        if (err) {
1227            hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', err.message);
1228        } else {
1229            hilog.info(0x0000, 'testTag', 'getBundleNameByUid successfully: %{public}s', JSON.stringify(data));
1230        }
1231    });
1232} catch (err) {
1233    let message = (err as BusinessError).message;
1234    hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', message);
1235}
1236```
1237
1238## bundleManager.getBundleNameByUid<sup>14+</sup>
1239
1240getBundleNameByUid(uid: number): Promise\<string>
1241
1242根据给定的uid获取对应的bundleName,使用Promise异步回调。
1243
1244**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1245
1246**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1247
1248**参数:**
1249
1250| 参数名 | 类型   | 必填 | 说明                |
1251| ---- | ------ | ---- | ------------------ |
1252| uid  | number | 是   | 表示应用程序的UID。 |
1253
1254**返回值:**
1255
1256| 类型             | 说明                        |
1257| ---------------- | --------------------------- |
1258| Promise\<string> | Promise对象,返回bundleName。 |
1259
1260**错误码:**
1261
1262以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1263
1264| 错误码ID | 错误信息            |
1265| -------- | ---------------------|
1266| 201 | Permission denied. |
1267| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1268| 17700021 | The uid is not found. |
1269
1270**示例:**
1271
1272```ts
1273import { bundleManager } from '@kit.AbilityKit';
1274import { BusinessError } from '@kit.BasicServicesKit';
1275import { hilog } from '@kit.PerformanceAnalysisKit';
1276let uid = 20010005;
1277try {
1278    bundleManager.getBundleNameByUid(uid).then((data) => {
1279        hilog.info(0x0000, 'testTag', 'getBundleNameByUid successfully. Data: %{public}s', JSON.stringify(data));
1280    }).catch((err: BusinessError) => {
1281        hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed. Cause: %{public}s', err.message);
1282    });
1283} catch (err) {
1284    let message = (err as BusinessError).message;
1285    hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed. Cause: %{public}s', message);
1286}
1287```
1288
1289## bundleManager.getBundleNameByUidSync<sup>14+</sup>
1290
1291getBundleNameByUidSync(uid: number): string
1292
1293以同步方法根据给定的uid获取对应的bundleName。
1294
1295**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1296
1297**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1298
1299**参数:**
1300
1301| 参数名 | 类型   | 必填 | 说明                |
1302| ---- | ------ | ---- | ------------------ |
1303| uid  | number | 是   | 表示应用程序的UID。 |
1304
1305**返回值:**
1306
1307| 类型             | 说明                        |
1308| ---------------- | --------------------------- |
1309| string | 返回获取到的bundleName。 |
1310
1311**错误码:**
1312
1313以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1314
1315| 错误码ID | 错误信息            |
1316| -------- | ---------------------|
1317| 201 | Permission denied. |
1318| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1319| 17700021 | The uid is not found. |
1320
1321**示例:**
1322
1323```ts
1324import { bundleManager } from '@kit.AbilityKit';
1325import { BusinessError } from '@kit.BasicServicesKit';
1326import { hilog } from '@kit.PerformanceAnalysisKit';
1327let uid = 20010005;
1328try {
1329    let data = bundleManager.getBundleNameByUidSync(uid);
1330    hilog.info(0x0000, 'testTag', 'getBundleNameByUidSync successfully. Data: %{public}s', JSON.stringify(data));
1331} catch (err) {
1332    let message = (err as BusinessError).message;
1333    hilog.error(0x0000, 'testTag', 'getBundleNameByUidSync failed. Cause: %{public}s', message);
1334}
1335```
1336
1337## bundleManager.getAppCloneIdentity<sup>14+</sup>
1338
1339getAppCloneIdentity(uid: number): Promise\<AppCloneIdentity>;
1340
1341根据uid查询分身应用的bundleName和appIndex。使用Promise异步回调。
1342
1343**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
1344
1345**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1346
1347**参数:**
1348
1349| 参数名     | 类型   | 必填 | 说明                       |
1350| ---------- | ------ | ---- | ---------------------------|
1351|    uid     | number |  是  |     表示应用程序的UID。      |
1352
1353**返回值:**
1354
1355| 类型                                                        | 说明                        |
1356| ----------------------------------------------------------- | --------------------------- |
1357| Promise\<[AppCloneIdentity](js-apis-bundleManager-bundleInfo.md#appcloneidentity14)> | 以Promise方式返回\<AppCloneIdentity>。 |
1358
1359**错误码:**
1360
1361以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1362
1363| 错误码ID | 错误信息                            |
1364| -------- | --------------------------------------|
1365| 201 | Permission denied. |
1366| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
1367| 17700021 | The uid is not found. |
1368
1369**示例:**
1370
1371```ts
1372import { bundleManager } from '@kit.AbilityKit';
1373import { BusinessError } from '@kit.BasicServicesKit';
1374import { hilog } from '@kit.PerformanceAnalysisKit';
1375let uid = 20010005;
1376
1377try {
1378    bundleManager.getAppCloneIdentity(uid).then((res) => {
1379        hilog.info(0x0000, 'testTag', 'getAppCloneIdentity res = %{public}s', JSON.stringify(res));
1380    }).catch((err: BusinessError) => {
1381        hilog.error(0x0000, 'testTag', 'getAppCloneIdentity failed. Cause: %{public}s', err.message);
1382    });
1383} catch (err) {
1384    let message = (err as BusinessError).message;
1385    hilog.error(0x0000, 'testTag', 'getAppCloneIdentity failed. Cause: %{public}s', message);
1386}
1387```
1388
1389## bundleManager.getSignatureInfo<sup>18+</sup>
1390
1391getSignatureInfo(uid: number): SignatureInfo
1392
1393根据给定的uid获取对应的[SignatureInfo](./js-apis-bundleManager-bundleInfo.md#signatureinfo)。
1394
1395**需要权限:** ohos.permission.GET_SIGNATURE_INFO
1396
1397**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1398
1399**参数:**
1400
1401| 参数名 | 类型   | 必填 | 说明                |
1402| ---- | ------ | ---- | ------------------ |
1403| uid  | number | 是   | 表示应用程序的UID。 |
1404
1405**返回值:**
1406
1407| 类型             | 说明                        |
1408| ---------------- | --------------------------- |
1409| [SignatureInfo](./js-apis-bundleManager-bundleInfo.md#signatureinfo) | 返回SignatureInfo对象。 |
1410
1411**错误码:**
1412
1413以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.bundle错误码](errorcode-bundle.md)。
1414
1415| 错误码ID | 错误信息            |
1416| -------- | ---------------------|
1417| 201 | Permission denied. |
1418| 17700021 | The uid is not found. |
1419
1420**示例:**
1421
1422```ts
1423import { bundleManager } from '@kit.AbilityKit';
1424import { BusinessError } from '@kit.BasicServicesKit';
1425import { hilog } from '@kit.PerformanceAnalysisKit';
1426let uid = 20010005; // uid需要替换为对应应用程序的UID。
1427try {
1428    let data = bundleManager.getSignatureInfo(uid);
1429    hilog.info(0x0000, 'testTag', 'getSignatureInfo successfully. Data: %{public}s', JSON.stringify(data));
1430} catch (err) {
1431    let message = (err as BusinessError).message;
1432    hilog.error(0x0000, 'testTag', 'getSignatureInfo failed. Cause: %{public}s', message);
1433}
1434```
1435
1436## ApplicationInfo
1437
1438type ApplicationInfo = _ApplicationInfo
1439
1440应用程序信息。
1441
1442**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1443
1444**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1445
1446| 类型                                                         | 说明           |
1447| ------------------------------------------------------------ | -------------- |
1448| [_ApplicationInfo](js-apis-bundleManager-applicationInfo.md#applicationinfo-1) | 应用程序信息。 |
1449
1450## ModuleMetadata<sup>10+</sup>
1451
1452type ModuleMetadata = _ModuleMetadata
1453
1454模块的元数据信息。
1455
1456**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1457
1458**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1459
1460| 类型                                                         | 说明           |
1461| ------------------------------------------------------------ | -------------- |
1462| [_ModuleMetadata](js-apis-bundleManager-applicationInfo.md#ModuleMetadata10) | 模块的元数据信息。 |
1463
1464## Metadata
1465
1466type Metadata = _Metadata
1467
1468元数据信息。
1469
1470**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1471
1472**系统能力**: SystemCapability.BundleManager.BundleFramework.Core
1473
1474| 类型                                                         | 说明           |
1475| ------------------------------------------------------------ | -------------- |
1476| [_Metadata](js-apis-bundleManager-metadata.md#metadata) | 元数据信息。 |
1477
1478## BundleInfo
1479
1480type BundleInfo = _BundleInfo.BundleInfo
1481
1482应用包信息。
1483
1484**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1485
1486**系统能力**: SystemCapability.BundleManager.BundleFramework.Core
1487
1488| 类型                                                         | 说明           |
1489| ------------------------------------------------------------ | -------------- |
1490| [_BundleInfo.BundleInfo](js-apis-bundleManager-bundleInfo.md#bundleinfo) | 应用包信息。 |
1491
1492
1493## UsedScene
1494
1495type UsedScene = _BundleInfo.UsedScene
1496
1497权限使用的场景和时机。
1498
1499**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1500
1501**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1502
1503| 类型                                                         | 说明           |
1504| ------------------------------------------------------------ | -------------- |
1505| [_BundleInfo.UsedScene](js-apis-bundleManager-bundleInfo.md#usedscene) | 权限使用的场景和时机。 |
1506
1507## ReqPermissionDetail
1508
1509type ReqPermissionDetail = _BundleInfo.ReqPermissionDetail
1510
1511应用运行时需向系统申请的权限集合的详细信息。
1512
1513**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1514
1515**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1516
1517| 类型                                                         | 说明           |
1518| ------------------------------------------------------------ | -------------- |
1519| [_BundleInfo.ReqPermissionDetail](js-apis-bundleManager-bundleInfo.md#reqpermissiondetail) | 应用运行时需向系统申请的权限集合的详细信息。 |
1520
1521## SignatureInfo
1522
1523type SignatureInfo = _BundleInfo.SignatureInfo
1524
1525应用包的签名信息。
1526
1527**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1528
1529**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1530
1531| 类型                                                         | 说明           |
1532| ------------------------------------------------------------ | -------------- |
1533| [_BundleInfo.SignatureInfo](js-apis-bundleManager-bundleInfo.md#signatureinfo) | 应用包的签名信息。 |
1534
1535## HapModuleInfo
1536
1537type HapModuleInfo = _HapModuleInfo.HapModuleInfo
1538
1539HAP信息。
1540
1541**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1542
1543**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1544
1545| 类型                                                         | 说明           |
1546| ------------------------------------------------------------ | -------------- |
1547| [_HapModuleInfo.HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md#hapmoduleinfo-1) | HAP信息。 |
1548
1549## PreloadItem
1550
1551type PreloadItem = _HapModuleInfo.PreloadItem
1552
1553原子化服务中模块的预加载模块信息。
1554
1555**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1556
1557**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1558
1559| 类型                                                         | 说明           |
1560| ------------------------------------------------------------ | -------------- |
1561| [_HapModuleInfo.PreloadItem](js-apis-bundleManager-hapModuleInfo.md#preloaditem) | 原子化服务中模块的预加载模块信息。 |
1562
1563## Dependency
1564
1565type Dependency = _HapModuleInfo.Dependency
1566
1567模块所依赖的动态共享库信息。
1568
1569**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1570
1571**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1572
1573| 类型                                                         | 说明           |
1574| ------------------------------------------------------------ | -------------- |
1575| [_HapModuleInfo.Dependency](js-apis-bundleManager-hapModuleInfo.md#dependency) | 模块所依赖的动态共享库信息。 |
1576
1577## RouterItem<sup>12+</sup>
1578
1579type RouterItem = _HapModuleInfo.RouterItem
1580
1581模块配置的路由表信息。
1582
1583**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1584
1585**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1586
1587| 类型                                                         | 说明           |
1588| ------------------------------------------------------------ | -------------- |
1589| [_HapModuleInfo.RouterItem](js-apis-bundleManager-hapModuleInfo.md#routeritem12) | 模块配置的路由表信息。 |
1590
1591## DataItem<sup>12+</sup>
1592
1593type DataItem = _HapModuleInfo.DataItem
1594
1595模块配置的路由表中的自定义数据。
1596
1597**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1598
1599**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1600
1601| 类型                                                         | 说明           |
1602| ------------------------------------------------------------ | -------------- |
1603| [_HapModuleInfo.DataItem](js-apis-bundleManager-hapModuleInfo.md#dataitem12) | 模块配置的路由表中的自定义数据。 |
1604
1605## AbilityInfo
1606
1607type AbilityInfo = _AbilityInfo.AbilityInfo
1608
1609Ability信息。
1610
1611**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1612
1613**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1614
1615| 类型                                                         | 说明           |
1616| ------------------------------------------------------------ | -------------- |
1617| [_AbilityInfo.AbilityInfo](js-apis-bundleManager-abilityInfo.md#abilityinfo-1) |Ability信息。 |
1618
1619## WindowSize
1620
1621type WindowSize = _AbilityInfo.WindowSize
1622
1623窗口尺寸。
1624
1625**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1626
1627**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1628
1629| 类型                                                         | 说明           |
1630| ------------------------------------------------------------ | -------------- |
1631| [_AbilityInfo.WindowSize](js-apis-bundleManager-abilityInfo.md#windowsize) |窗口尺寸。 |
1632
1633
1634## ExtensionAbilityInfo
1635
1636type ExtensionAbilityInfo = _ExtensionAbilityInfo.ExtensionAbilityInfo
1637
1638ExtensionAbility信息。
1639
1640**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1641
1642**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1643
1644| 类型                                                         | 说明           |
1645| ------------------------------------------------------------ | -------------- |
1646| [_ExtensionAbilityInfo.ExtensionAbilityInfo](js-apis-bundleManager-extensionAbilityInfo.md#extensionabilityinfo-1) |ExtensionAbility信息。 |
1647
1648## ElementName
1649
1650type ElementName = _ElementName
1651
1652ElementName信息。
1653
1654**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1655
1656**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1657
1658| 类型                                                         | 说明           |
1659| ------------------------------------------------------------ | -------------- |
1660| [_ElementName](js-apis-bundleManager-elementName.md#elementname-1) |ElementName信息。 |
1661
1662## Skill<sup>12+</sup>
1663
1664type Skill = _Skill.Skill
1665
1666skill信息。
1667
1668**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1669
1670**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1671
1672| 类型                                                         | 说明           |
1673| ------------------------------------------------------------ | -------------- |
1674| [_Skill.Skill](js-apis-bundleManager-skill.md#skill-1) |skill信息。 |
1675
1676## SkillUrl<sup>12+</sup>
1677
1678type SkillUrl = _Skill.SkillUri
1679
1680SkillUri信息。
1681
1682**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1683
1684**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1685
1686| 类型                                                         | 说明           |
1687| ------------------------------------------------------------ | -------------- |
1688| [_Skill.SkillUri](js-apis-bundleManager-skill.md#skilluri) |SkillUri信息。 |
1689
1690## AppCloneIdentity<sup>15+</sup>
1691
1692type AppCloneIdentity = _BundleInfo.AppCloneIdentity
1693
1694描述应用包的身份信息。
1695
1696**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
1697
1698| 类型                                                         | 说明           |
1699| ------------------------------------------------------------ | -------------- |
1700| [_BundleInfo.AppCloneIdentity](js-apis-bundleManager-bundleInfo.md#appcloneidentity14) |应用包的身份信息。 |