1# @ohos.enterprise.bundleManager(包管理)
2
3本模块提供包管理能力,包括添加包安装白名单、获取包安装白名单、移除包安装白名单等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将设备管理应用激活后调用,实现相应功能。
12
13## 导入模块
14
15```ts
16import { bundleManager } from '@kit.MDMKit';
17```
18
19## bundleManager.addAllowedInstallBundlesSync
20
21addAllowedInstallBundlesSync(admin: Want, appIds: Array<string>, accountId?: number): void
22
23指定设备管理应用添加应用至包安装白名单,添加至白名单的应用允许在当前/指定用户下安装,否则不允许安装。
24
25**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
26
27**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
28
29
30**参数:**
31
32| 参数名    | 类型                                                    | 必填 | 说明                                                         |
33| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
34| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
35| appIds    | Array<string>                                     | 是   | 应用ID数组。                                                 |
36| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
37
38**错误码**:
39
40以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
41
42| 错误码ID | 错误信息                                                     |
43| -------- | ------------------------------------------------------------ |
44| 9200001  | The application is not an administrator application of the device. |
45| 9200002  | The administrator application does not have permission to manage the device. |
46| 201      | Permission verification failed. The application does not have the permission required to call the API. |
47| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
48
49**示例:**
50
51```ts
52import { Want } from '@kit.AbilityKit';
53import { BusinessError } from '@kit.BasicServicesKit';
54let wantTemp: Want = {
55  bundleName: 'com.example.myapplication',
56  abilityName: 'EntryAbility',
57};
58let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
59
60try {
61  bundleManager.addAllowedInstallBundlesSync(wantTemp, appIds, 100);
62  console.info('Succeeded in adding allowed install bundles.');
63} catch (err) {
64  console.error(`Failed to add allowed install bundles. Code is ${err.code}, message is ${err.message}`);
65}
66```
67
68## bundleManager.removeAllowedInstallBundlesSync
69
70removeAllowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
71
72指定设备管理应用在包安装白名单中移除应用,在白名单存在的情况下,不在包安装白名单中的应用不允许在当前/指定用户下安装。
73
74**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
75
76**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
77
78
79**参数:**
80
81| 参数名    | 类型                                                    | 必填 | 说明                                                         |
82| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
83| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
84| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
85| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
86
87**错误码**:
88
89以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
90
91| 错误码ID | 错误信息                                                     |
92| -------- | ------------------------------------------------------------ |
93| 9200001  | The application is not an administrator application of the device. |
94| 9200002  | The administrator application does not have permission to manage the device. |
95| 201      | Permission verification failed. The application does not have the permission required to call the API. |
96| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
97
98**示例:**
99
100```ts
101import { Want } from '@kit.AbilityKit';
102import { BusinessError } from '@kit.BasicServicesKit';
103let wantTemp: Want = {
104  bundleName: 'com.example.myapplication',
105  abilityName: 'EntryAbility',
106};
107let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
108
109try {
110  bundleManager.removeAllowedInstallBundlesSync(wantTemp, appIds, 100);
111  console.info('Succeeded in removing allowed install bundles.');
112} catch (err) {
113  console.error(`Failed to remove allowed install bundles. Code is ${err.code}, message is ${err.message}`);
114}
115```
116
117## bundleManager.getAllowedInstallBundlesSync
118
119getAllowedInstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
120
121指定设备管理应用获取当前/指定用户下的包安装白名单。
122
123**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
124
125**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
126
127
128**参数:**
129
130| 参数名    | 类型                                                    | 必填 | 说明                                                         |
131| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
132| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
133| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
134
135**返回值:**
136
137| 类型                | 说明                           |
138| ------------------- | ------------------------------ |
139| Array&lt;string&gt; | 返回当前用户下的包安装白名单。 |
140
141**错误码**:
142
143以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
144
145| 错误码ID | 错误信息                                                     |
146| -------- | ------------------------------------------------------------ |
147| 9200001  | The application is not an administrator application of the device. |
148| 9200002  | The administrator application does not have permission to manage the device. |
149| 201      | Permission verification failed. The application does not have the permission required to call the API. |
150| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
151
152**示例:**
153
154```ts
155import { Want } from '@kit.AbilityKit';
156let wantTemp: Want = {
157  bundleName: 'com.example.myapplication',
158  abilityName: 'EntryAbility',
159};
160
161try {
162  let result: Array<string> = bundleManager.getAllowedInstallBundlesSync(wantTemp, 100);
163  console.info(`Succeeded in getting allowed install bundles, result : ${JSON.stringify(result)}`);
164} catch (err) {
165  console.error(`Failed to get allowed install bundles. Code is ${err.code}, message is ${err.message}`);
166}
167```
168
169## bundleManager.addDisallowedInstallBundlesSync
170
171addDisallowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
172
173指定设备管理应用添加应用至包安装黑名单,添加至黑名单的应用不允许在当前/指定用户下安装。
174
175**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
176
177**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
178
179**参数:**
180
181| 参数名    | 类型                                                    | 必填 | 说明                                                         |
182| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
183| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
184| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
185| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
186
187**错误码**:
188
189以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
190
191| 错误码ID | 错误信息                                                     |
192| -------- | ------------------------------------------------------------ |
193| 9200001  | The application is not an administrator application of the device. |
194| 9200002  | The administrator application does not have permission to manage the device. |
195| 201      | Permission verification failed. The application does not have the permission required to call the API. |
196| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
197
198**示例:**
199
200```ts
201import { Want } from '@kit.AbilityKit';
202import { BusinessError } from '@kit.BasicServicesKit';
203let wantTemp: Want = {
204  bundleName: 'com.example.myapplication',
205  abilityName: 'EntryAbility',
206};
207let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
208
209try {
210  bundleManager.addDisallowedInstallBundlesSync(wantTemp, appIds, 100);
211  console.info('Succeeded in adding disallowed install bundles.');
212} catch (err) {
213  console.error(`Failed to add disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
214}
215```
216
217## bundleManager.removeDisallowedInstallBundlesSync
218
219removeDisallowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
220
221指定设备管理应用在包安装黑名单中移除应用,在黑名单存在的情况下,在包安装黑名单中的应用不允许在当前/指定用户下安装。
222
223**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
224
225**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
226
227**参数:**
228
229| 参数名    | 类型                                                    | 必填 | 说明                                                         |
230| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
231| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
232| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
233| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
234
235**错误码**:
236
237以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
238
239| 错误码ID | 错误信息                                                     |
240| -------- | ------------------------------------------------------------ |
241| 9200001  | The application is not an administrator application of the device. |
242| 9200002  | The administrator application does not have permission to manage the device. |
243| 201      | Permission verification failed. The application does not have the permission required to call the API. |
244| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
245
246**示例:**
247
248```ts
249import { Want } from '@kit.AbilityKit';
250import { BusinessError } from '@kit.BasicServicesKit';
251let wantTemp: Want = {
252  bundleName: 'com.example.myapplication',
253  abilityName: 'EntryAbility',
254};
255let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
256
257try {
258  bundleManager.removeDisallowedInstallBundlesSync(wantTemp, appIds, 100)
259  console.info('Succeeded in removing disallowed install bundles.');
260} catch (err) {
261  console.error(`Failed to remove disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
262}
263```
264
265## bundleManager.getDisallowedInstallBundlesSync
266
267getDisallowedInstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
268
269指定设备管理应用获取当前/指定用户下的包安装黑名单。
270
271**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
272
273**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
274
275
276**参数:**
277
278| 参数名    | 类型                                                    | 必填 | 说明                                                         |
279| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
280| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
281| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
282
283**返回值:**
284
285| 类型                | 说明                           |
286| ------------------- | ------------------------------ |
287| Array&lt;string&gt; | 返回当前用户下的包安装白名单。 |
288
289**错误码**:
290
291以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
292
293| 错误码ID | 错误信息                                                     |
294| -------- | ------------------------------------------------------------ |
295| 9200001  | The application is not an administrator application of the device. |
296| 9200002  | The administrator application does not have permission to manage the device. |
297| 201      | Permission verification failed. The application does not have the permission required to call the API. |
298| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
299
300**示例:**
301
302```ts
303import { Want } from '@kit.AbilityKit';
304let wantTemp: Want = {
305  bundleName: 'com.example.myapplication',
306  abilityName: 'EntryAbility',
307};
308
309try {
310  let result: Array<string> = bundleManager.getDisallowedInstallBundlesSync(wantTemp, 100);
311  console.info(`Succeeded in getting disallowed install bundles, result : ${JSON.stringify(result)}`);
312} catch (err) {
313  console.error(`Failed to get disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
314}
315```
316
317## bundleManager.addDisallowedUninstallBundlesSync
318
319addDisallowedUninstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
320
321指定设备管理应用添加应用至包卸载黑名单,添加至黑名单的应用不允许在当前/指定用户下卸载。
322
323**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
324
325**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
326
327
328**参数:**
329
330| 参数名    | 类型                                                    | 必填 | 说明                                                         |
331| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
332| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
333| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
334| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
335
336**错误码**:
337
338以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
339
340| 错误码ID | 错误信息                                                     |
341| -------- | ------------------------------------------------------------ |
342| 9200001  | The application is not an administrator application of the device. |
343| 9200002  | The administrator application does not have permission to manage the device. |
344| 201      | Permission verification failed. The application does not have the permission required to call the API. |
345| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
346
347**示例:**
348
349```ts
350import { Want } from '@kit.AbilityKit';
351let wantTemp: Want = {
352  bundleName: 'com.example.myapplication',
353  abilityName: 'EntryAbility',
354};
355let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
356
357try {
358  bundleManager.addDisallowedUninstallBundlesSync(wantTemp, appIds, 100);
359  console.info('Succeeded in adding disallowed uninstall bundles.');
360} catch (err) {
361  console.error(`Failed to add disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
362}
363```
364
365## bundleManager.removeDisallowedUninstallBundlesSync
366
367removeDisallowedUninstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
368
369指定设备管理应用在包卸载黑名单中移除应用。在黑名单存在的情况下,在包卸载黑名单中的应用不允许在当前/指定用户下卸载。
370
371**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
372
373**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
374
375
376**参数:**
377
378| 参数名    | 类型                                                    | 必填 | 说明                                                         |
379| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
380| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
381| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
382| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
383
384**错误码**:
385
386以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
387
388| 错误码ID | 错误信息                                                     |
389| -------- | ------------------------------------------------------------ |
390| 9200001  | The application is not an administrator application of the device. |
391| 9200002  | The administrator application does not have permission to manage the device. |
392| 201      | Permission verification failed. The application does not have the permission required to call the API. |
393| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
394
395**示例:**
396
397```ts
398import { Want } from '@kit.AbilityKit';
399let wantTemp: Want = {
400  bundleName: 'com.example.myapplication',
401  abilityName: 'EntryAbility',
402};
403let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
404
405try {
406  bundleManager.removeDisallowedUninstallBundlesSync(wantTemp, appIds, 100);
407  console.info('Succeeded in removing disallowed uninstall bundles.');
408} catch (err) {
409  console.error(`Failed to remove disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
410}
411```
412
413## bundleManager.getDisallowedUninstallBundlesSync
414
415getDisallowedUninstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
416
417指定设备管理应用获取当前/指定用户下包卸载黑名单接口。
418
419**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
420
421**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
422
423
424**参数:**
425
426| 参数名    | 类型                                                    | 必填 | 说明                                                         |
427| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
428| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
429| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
430
431**返回值:**
432
433| 类型                | 说明                           |
434| ------------------- | ------------------------------ |
435| Array&lt;string&gt; | 返回当前用户下的包卸载白名单。 |
436
437**错误码**:
438
439以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
440
441| 错误码ID | 错误信息                                                     |
442| -------- | ------------------------------------------------------------ |
443| 9200001  | The application is not an administrator application of the device. |
444| 9200002  | The administrator application does not have permission to manage the device. |
445| 201      | Permission verification failed. The application does not have the permission required to call the API. |
446| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
447
448**示例:**
449
450```ts
451import { Want } from '@kit.AbilityKit';
452let wantTemp: Want = {
453  bundleName: 'com.example.myapplication',
454  abilityName: 'EntryAbility',
455};
456
457try {
458  let result: Array<String> = bundleManager.getDisallowedUninstallBundlesSync(wantTemp, 100);
459  console.info(`Succeeded in getting disallowed uninstall bundles, result : ${JSON.stringify(result)}`);
460} catch (err) {
461  console.error(`Failed to get disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
462}
463```
464
465## bundleManager.uninstall
466
467uninstall(admin: Want, bundleName: string, userId?: number, isKeepData?: boolean): Promise&lt;void&gt;
468
469指定设备管理应用卸载当前/指定用户下的指定包接口,选择是否保留包数据(由isKeepData指定)。使用promise异步回调。
470
471**需要权限:** ohos.permission.ENTERPRISE_INSTALL_BUNDLE
472
473**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
474
475
476**参数:**
477
478| 参数名     | 类型                                                    | 必填 | 说明                                                         |
479| ---------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
480| admin      | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。                                               |
481| bundleName | string                                                  | 是   | 包名。                                                       |
482| userId     | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入userId,表示指定用户。<br> - 调用接口时,若未传入userId,表示当前用户。 |
483| isKeepData | boolean                                                 | 否   | 是否保留包数据,true表示保留,false表示不保留。              |
484
485**返回值:**
486
487| 类型                | 说明                                                  |
488| ------------------- | ----------------------------------------------------- |
489| Promise&lt;void&gt; | 无返回结果的Promise对象。当包卸载失败时抛出错误对象。 |
490
491**错误码**:
492
493以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
494
495| 错误码ID | 错误信息                                                     |
496| -------- | ------------------------------------------------------------ |
497| 9200001  | The application is not an administrator application of the device. |
498| 9200002  | The administrator application does not have permission to manage the device. |
499| 201      | Permission verification failed. The application does not have the permission required to call the API. |
500| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
501
502**示例:**
503
504```ts
505import { Want } from '@kit.AbilityKit';
506import { BusinessError } from '@kit.BasicServicesKit';
507let wantTemp: Want = {
508  bundleName: 'com.example.myapplication',
509  abilityName: 'EntryAbility',
510};
511
512bundleManager.uninstall(wantTemp, 'bundleName', 100, true).then(() => {
513  console.info('Succeeded in uninstalling bundles.');
514}).catch((err: BusinessError) => {
515  console.error(`Failed to uninstall bundles. Code is ${err.code}, message is ${err.message}`);
516});
517```
518
519## bundleManager.install
520
521install(admin: Want, hapFilePaths: Array\<string>, installParam?: InstallParam): Promise\<void>
522
523指定设备管理应用安装指定路径下的应用包。使用promise异步回调。
524注意:此接口只能安装分发类型为enterprise_mdm和enterprise_normal类型的应用。
525
526**需要权限:** ohos.permission.ENTERPRISE_INSTALL_BUNDLE
527
528**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
529
530
531**参数:**
532
533| 参数名       | 类型                                                    | 必填 | 说明                   |
534| ------------ | ------------------------------------------------------- | ---- | ---------------------- |
535| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 设备管理应用。         |
536| hapFilePaths | Array\<string>                                          | 是   | 待安装应用包路径数组。 |
537| installParam | [InstallParam](#installparam)                           | 否   | 应用包安装参数。       |
538
539**返回值:**
540
541| 类型                | 说明                                                    |
542| ------------------- | ------------------------------------------------------- |
543| Promise&lt;void&gt; | 无返回结果的Promise对象。当包安装失败时,抛出错误对象。 |
544
545**错误码**:
546
547以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
548
549| 错误码ID | 错误信息                                                     |
550| -------- | ------------------------------------------------------------ |
551| 9200001  | The application is not an administrator application of the device. |
552| 9200002  | The administrator application does not have permission to manage the device. |
553| 9201002  | Failed to install the application.                           |
554| 201      | Permission verification failed. The application does not have the permission required to call the API. |
555| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
556
557**示例:**
558
559```ts
560import { Want } from '@kit.AbilityKit';
561import { BusinessError } from '@kit.BasicServicesKit';
562let wantTemp: Want = {
563  bundleName: 'com.example.myapplication',
564  abilityName: 'EntryAbility',
565};
566let hapFilePaths: Array<string> = ['/data/storage/el2/base/haps/entry/testinstall/ExtensionTest.hap'];
567
568bundleManager.install(wantTemp, hapFilePaths).then(() => {
569  console.info('Succeeded in installing bundles.');
570}).catch((err: BusinessError) => {
571  console.error(`Failed to install bundles. Code is ${err.code}, message is ${err.message}`);
572});
573```
574
575## InstallParam
576
577应用包安装需指定的参数信息。
578
579**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
580
581| 名称        | 类型   | 必填 | 说明                                                         |
582| ----------- | ------ | ---- | ------------------------------------------------------------ |
583| userId      | number | 否   | 指示用户id,默认值:调用方所在用户,取值范围:大于等于0。    |
584| installFlag | number | 否   | 安装标志。枚举值:0:应用初次安装,1:应用覆盖安装,2:应用免安装,默认值为应用初次安装。 |