• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.enterprise.bundleManager(包管理)
2<!--Kit: MDM Kit-->
3<!--Subsystem: Customization-->
4<!--Owner: @huanleima-->
5<!--Designer: @liuzuming-->
6<!--Tester: @lpw_work-->
7<!--Adviser: @Brilliantry_Rui-->
8
9本模块提供包管理能力,包括添加包安装允许名单、获取包安装允许名单、移除包安装允许名单等。
10
11> **说明:**
12>
13> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14>
15> 本模块接口仅可在Stage模型下使用。
16>
17> 本模块接口仅对设备管理应用开放,且调用接口前需激活设备管理应用,具体请参考[MDM Kit开发指南](../../mdm/mdm-kit-guide.md)。
18
19## 导入模块
20
21```ts
22import { bundleManager } from '@kit.MDMKit';
23```
24
25## bundleManager.addAllowedInstallBundlesSync
26
27addAllowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
28
29添加应用至应用程序包安装允许名单,添加至允许名单的应用允许在当前/指定用户下安装,其它非允许名单应用不允许安装。
30
31**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
32
33**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
34
35**模型约束:** 此接口仅可在Stage模型下使用。
36
37**参数:**
38
39| 参数名    | 类型                                                    | 必填 | 说明                                                         |
40| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
41| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
42| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
43| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
44
45**错误码**:
46
47以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
48
49| 错误码ID | 错误信息                                                     |
50| -------- | ------------------------------------------------------------ |
51| 9200001  | The application is not an administrator application of the device. |
52| 9200002  | The administrator application does not have permission to manage the device. |
53| 201      | Permission verification failed. The application does not have the permission required to call the API. |
54| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
55
56**示例:**
57
58```ts
59import { bundleManager } from '@kit.MDMKit';
60import { Want } from '@kit.AbilityKit';
61import { BusinessError } from '@kit.BasicServicesKit';
62
63let wantTemp: Want = {
64  // 需根据实际情况进行替换
65  bundleName: 'com.example.myapplication',
66  abilityName: 'EntryAbility'
67};
68// 需根据实际情况进行替换
69let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
70
71try {
72  bundleManager.addAllowedInstallBundlesSync(wantTemp, appIds, 100);
73  console.info('Succeeded in adding allowed install bundles.');
74} catch (err) {
75  console.error(`Failed to add allowed install bundles. Code is ${err.code}, message is ${err.message}`);
76}
77```
78
79## bundleManager.removeAllowedInstallBundlesSync
80
81removeAllowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
82
83在应用程序包安装允许名单中移除应用,在允许名单存在的情况下,不在应用程序包安装允许名单中的应用不允许在当前/指定用户下安装。
84
85**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
86
87**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
88
89**模型约束:** 此接口仅可在Stage模型下使用。
90
91**参数:**
92
93| 参数名    | 类型                                                    | 必填 | 说明                                                         |
94| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
95| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
96| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
97| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
98
99**错误码**:
100
101以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
102
103| 错误码ID | 错误信息                                                     |
104| -------- | ------------------------------------------------------------ |
105| 9200001  | The application is not an administrator application of the device. |
106| 9200002  | The administrator application does not have permission to manage the device. |
107| 201      | Permission verification failed. The application does not have the permission required to call the API. |
108| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
109
110**示例:**
111
112```ts
113import { bundleManager } from '@kit.MDMKit';
114import { Want } from '@kit.AbilityKit';
115import { BusinessError } from '@kit.BasicServicesKit';
116
117let wantTemp: Want = {
118  // 需根据实际情况进行替换
119  bundleName: 'com.example.myapplication',
120  abilityName: 'EntryAbility'
121};
122// 需根据实际情况进行替换
123let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
124
125try {
126  bundleManager.removeAllowedInstallBundlesSync(wantTemp, appIds, 100);
127  console.info('Succeeded in removing allowed install bundles.');
128} catch (err) {
129  console.error(`Failed to remove allowed install bundles. Code is ${err.code}, message is ${err.message}`);
130}
131```
132
133## bundleManager.getAllowedInstallBundlesSync
134
135getAllowedInstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
136
137获取当前/指定用户下的应用程序包安装允许名单。
138
139**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
140
141**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
142
143**模型约束:** 此接口仅可在Stage模型下使用。
144
145**参数:**
146
147| 参数名    | 类型                                                    | 必填 | 说明                                                         |
148| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
149| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
150| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
151
152**返回值:**
153
154| 类型                | 说明                           |
155| ------------------- | ------------------------------ |
156| Array&lt;string&gt; | 返回当前用户下的应用程序包安装允许名单。 |
157
158**错误码**:
159
160以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
161
162| 错误码ID | 错误信息                                                     |
163| -------- | ------------------------------------------------------------ |
164| 9200001  | The application is not an administrator application of the device. |
165| 9200002  | The administrator application does not have permission to manage the device. |
166| 201      | Permission verification failed. The application does not have the permission required to call the API. |
167| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
168
169**示例:**
170
171```ts
172import { bundleManager } from '@kit.MDMKit';
173import { Want } from '@kit.AbilityKit';
174
175let wantTemp: Want = {
176  // 需根据实际情况进行替换
177  bundleName: 'com.example.myapplication',
178  abilityName: 'EntryAbility'
179};
180
181try {
182  let result: Array<string> = bundleManager.getAllowedInstallBundlesSync(wantTemp, 100);
183  console.info(`Succeeded in getting allowed install bundles, result : ${JSON.stringify(result)}`);
184} catch (err) {
185  console.error(`Failed to get allowed install bundles. Code is ${err.code}, message is ${err.message}`);
186}
187```
188
189## bundleManager.addDisallowedInstallBundlesSync
190
191addDisallowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
192
193添加应用至应用程序包安装禁止名单,添加至禁止名单的应用不允许在当前/指定用户下安装。
194
195**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
196
197**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
198
199**模型约束:** 此接口仅可在Stage模型下使用。
200
201**参数:**
202
203| 参数名    | 类型                                                    | 必填 | 说明                                                         |
204| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
205| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
206| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
207| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
208
209**错误码**:
210
211以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
212
213| 错误码ID | 错误信息                                                     |
214| -------- | ------------------------------------------------------------ |
215| 9200001  | The application is not an administrator application of the device. |
216| 9200002  | The administrator application does not have permission to manage the device. |
217| 201      | Permission verification failed. The application does not have the permission required to call the API. |
218| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
219
220**示例:**
221
222```ts
223import { bundleManager } from '@kit.MDMKit';
224import { Want } from '@kit.AbilityKit';
225import { BusinessError } from '@kit.BasicServicesKit';
226
227let wantTemp: Want = {
228  // 需根据实际情况进行替换
229  bundleName: 'com.example.myapplication',
230  abilityName: 'EntryAbility'
231};
232// 需根据实际情况进行替换
233let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
234
235try {
236  bundleManager.addDisallowedInstallBundlesSync(wantTemp, appIds, 100);
237  console.info('Succeeded in adding disallowed install bundles.');
238} catch (err) {
239  console.error(`Failed to add disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
240}
241```
242
243## bundleManager.removeDisallowedInstallBundlesSync
244
245removeDisallowedInstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
246
247在应用程序包安装禁止名单中移除应用,在禁止名单存在的情况下,在应用程序包安装禁止名单中的应用不允许在当前/指定用户下安装。
248
249**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
250
251**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
252
253**模型约束:** 此接口仅可在Stage模型下使用。
254
255**参数:**
256
257| 参数名    | 类型                                                    | 必填 | 说明                                                         |
258| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
259| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
260| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
261| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
262
263**错误码**:
264
265以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
266
267| 错误码ID | 错误信息                                                     |
268| -------- | ------------------------------------------------------------ |
269| 9200001  | The application is not an administrator application of the device. |
270| 9200002  | The administrator application does not have permission to manage the device. |
271| 201      | Permission verification failed. The application does not have the permission required to call the API. |
272| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
273
274**示例:**
275
276```ts
277import { bundleManager } from '@kit.MDMKit';
278import { Want } from '@kit.AbilityKit';
279import { BusinessError } from '@kit.BasicServicesKit';
280
281let wantTemp: Want = {
282  // 需根据实际情况进行替换
283  bundleName: 'com.example.myapplication',
284  abilityName: 'EntryAbility'
285};
286// 需根据实际情况进行替换
287let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
288
289try {
290  bundleManager.removeDisallowedInstallBundlesSync(wantTemp, appIds, 100)
291  console.info('Succeeded in removing disallowed install bundles.');
292} catch (err) {
293  console.error(`Failed to remove disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
294}
295```
296
297## bundleManager.getDisallowedInstallBundlesSync
298
299getDisallowedInstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
300
301获取当前/指定用户下的应用程序包安装禁止名单。
302
303**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
304
305**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
306
307**模型约束:** 此接口仅可在Stage模型下使用。
308
309**参数:**
310
311| 参数名    | 类型                                                    | 必填 | 说明                                                         |
312| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
313| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
314| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
315
316**返回值:**
317
318| 类型                | 说明                           |
319| ------------------- | ------------------------------ |
320| Array&lt;string&gt; | 返回当前用户下的应用程序包安装禁止名单。 |
321
322**错误码**:
323
324以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
325
326| 错误码ID | 错误信息                                                     |
327| -------- | ------------------------------------------------------------ |
328| 9200001  | The application is not an administrator application of the device. |
329| 9200002  | The administrator application does not have permission to manage the device. |
330| 201      | Permission verification failed. The application does not have the permission required to call the API. |
331| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
332
333**示例:**
334
335```ts
336import { bundleManager } from '@kit.MDMKit';
337import { Want } from '@kit.AbilityKit';
338
339let wantTemp: Want = {
340  // 需根据实际情况进行替换
341  bundleName: 'com.example.myapplication',
342  abilityName: 'EntryAbility'
343};
344
345try {
346  // 参数需根据实际情况进行替换
347  let result: Array<string> = bundleManager.getDisallowedInstallBundlesSync(wantTemp, 100);
348  console.info(`Succeeded in getting disallowed install bundles, result : ${JSON.stringify(result)}`);
349} catch (err) {
350  console.error(`Failed to get disallowed install bundles. Code is ${err.code}, message is ${err.message}`);
351}
352```
353
354## bundleManager.addDisallowedUninstallBundlesSync
355
356addDisallowedUninstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
357
358添加应用至包卸载禁止名单,添加至禁止名单的应用不允许在当前/指定用户下卸载。
359
360**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
361
362**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
363
364**模型约束:** 此接口仅可在Stage模型下使用。
365
366**参数:**
367
368| 参数名    | 类型                                                    | 必填 | 说明                                                         |
369| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
370| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
371| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
372| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
373
374**错误码**:
375
376以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
377
378| 错误码ID | 错误信息                                                     |
379| -------- | ------------------------------------------------------------ |
380| 9200001  | The application is not an administrator application of the device. |
381| 9200002  | The administrator application does not have permission to manage the device. |
382| 201      | Permission verification failed. The application does not have the permission required to call the API. |
383| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
384
385**示例:**
386
387```ts
388import { bundleManager } from '@kit.MDMKit';
389import { Want } from '@kit.AbilityKit';
390
391let wantTemp: Want = {
392  // 需根据实际情况进行替换
393  bundleName: 'com.example.myapplication',
394  abilityName: 'EntryAbility'
395};
396// 需根据实际情况进行替换
397let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
398
399try {
400  // 参数需根据实际情况进行替换
401  bundleManager.addDisallowedUninstallBundlesSync(wantTemp, appIds, 100);
402  console.info('Succeeded in adding disallowed uninstall bundles.');
403} catch (err) {
404  console.error(`Failed to add disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
405}
406```
407
408## bundleManager.removeDisallowedUninstallBundlesSync
409
410removeDisallowedUninstallBundlesSync(admin: Want, appIds: Array&lt;string&gt;, accountId?: number): void
411
412在包卸载禁止名单中移除应用。在禁止名单存在的情况下,在包卸载禁止名单中的应用不允许在当前/指定用户下卸载。
413
414**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
415
416**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
417
418**模型约束:** 此接口仅可在Stage模型下使用。
419
420**参数:**
421
422| 参数名    | 类型                                                    | 必填 | 说明                                                         |
423| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
424| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
425| appIds    | Array&lt;string&gt;                                     | 是   | 应用ID数组。                                                 |
426| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
427
428**错误码**:
429
430以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
431
432| 错误码ID | 错误信息                                                     |
433| -------- | ------------------------------------------------------------ |
434| 9200001  | The application is not an administrator application of the device. |
435| 9200002  | The administrator application does not have permission to manage the device. |
436| 201      | Permission verification failed. The application does not have the permission required to call the API. |
437| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
438
439**示例:**
440
441```ts
442import { bundleManager } from '@kit.MDMKit';
443import { Want } from '@kit.AbilityKit';
444
445let wantTemp: Want = {
446  // 需根据实际情况进行替换
447  bundleName: 'com.example.myapplication',
448  abilityName: 'EntryAbility'
449};
450// 需根据实际情况进行替换
451let appIds: Array<string> = ['com.example.******_******/******5t5CoBM='];
452
453try {
454  // 参数需根据实际情况进行替换
455  bundleManager.removeDisallowedUninstallBundlesSync(wantTemp, appIds, 100);
456  console.info('Succeeded in removing disallowed uninstall bundles.');
457} catch (err) {
458  console.error(`Failed to remove disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
459}
460```
461
462## bundleManager.getDisallowedUninstallBundlesSync
463
464getDisallowedUninstallBundlesSync(admin: Want, accountId?: number): Array&lt;string&gt;
465
466获取当前/指定用户下包卸载禁止名单。
467
468**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
469
470**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
471
472**模型约束:** 此接口仅可在Stage模型下使用。
473
474**参数:**
475
476| 参数名    | 类型                                                    | 必填 | 说明                                                         |
477| --------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
478| admin     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
479| accountId | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。<br> - 调用接口时,若传入accountId,表示指定用户。<br> - 调用接口时,若未传入accountId,表示当前用户。 |
480
481**返回值:**
482
483| 类型                | 说明                           |
484| ------------------- | ------------------------------ |
485| Array&lt;string&gt; | 返回当前用户下的包卸载禁止名单。 |
486
487**错误码**:
488
489以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
490
491| 错误码ID | 错误信息                                                     |
492| -------- | ------------------------------------------------------------ |
493| 9200001  | The application is not an administrator application of the device. |
494| 9200002  | The administrator application does not have permission to manage the device. |
495| 201      | Permission verification failed. The application does not have the permission required to call the API. |
496| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
497
498**示例:**
499
500```ts
501import { bundleManager } from '@kit.MDMKit';
502import { Want } from '@kit.AbilityKit';
503
504let wantTemp: Want = {
505  // 需根据实际情况进行替换
506  bundleName: 'com.example.myapplication',
507  abilityName: 'EntryAbility'
508};
509
510try {
511  // 参数需根据实际情况进行替换
512  let result: Array<String> = bundleManager.getDisallowedUninstallBundlesSync(wantTemp, 100);
513  console.info(`Succeeded in getting disallowed uninstall bundles, result : ${JSON.stringify(result)}`);
514} catch (err) {
515  console.error(`Failed to get disallowed uninstall bundles. Code is ${err.code}, message is ${err.message}`);
516}
517```
518
519## bundleManager.uninstall
520
521uninstall(admin: Want, bundleName: string, userId?: number, isKeepData?: boolean): Promise&lt;void&gt;
522
523卸载当前/指定用户下的指定包接口,选择是否保留包数据(由isKeepData指定)。使用promise异步回调。
524
525**需要权限:** ohos.permission.ENTERPRISE_INSTALL_BUNDLE
526
527**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
528
529**模型约束:** 此接口仅可在Stage模型下使用。
530
531**参数:**
532
533| 参数名     | 类型                                                    | 必填 | 说明                                                         |
534| ---------- | ------------------------------------------------------- | ---- | ------------------------------------------------------------ |
535| admin      | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。                                               |
536| bundleName | string                                                  | 是   | 应用程序包名。                                                       |
537| userId     | number                                                  | 否   | 用户ID,取值范围:大于等于0。<br> - 调用接口时,若传入userId,表示指定用户。<br> - 调用接口时,若未传入userId,表示当前用户。 |
538| isKeepData | boolean                                                 | 否   | 是否保留包数据,true表示保留,false表示不保留。              |
539
540**返回值:**
541
542| 类型                | 说明                                                  |
543| ------------------- | ----------------------------------------------------- |
544| Promise&lt;void&gt; | 无返回结果的Promise对象。当包卸载失败时抛出错误对象。 |
545
546**错误码**:
547
548以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
549
550| 错误码ID | 错误信息                                                     |
551| -------- | ------------------------------------------------------------ |
552| 9200001  | The application is not an administrator application of the device. |
553| 9200002  | The administrator application does not have permission to manage the device. |
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 { bundleManager } from '@kit.MDMKit';
561import { Want } from '@kit.AbilityKit';
562import { BusinessError } from '@kit.BasicServicesKit';
563
564let wantTemp: Want = {
565  // 需根据实际情况进行替换
566  bundleName: 'com.example.myapplication',
567  abilityName: 'EntryAbility'
568};
569
570// 参数需根据实际情况进行替换
571bundleManager.uninstall(wantTemp, 'bundleName', 100, true).then(() => {
572  console.info('Succeeded in uninstalling bundles.');
573}).catch((err: BusinessError) => {
574  console.error(`Failed to uninstall bundles. Code is ${err.code}, message is ${err.message}`);
575});
576```
577
578## bundleManager.install
579
580install(admin: Want, hapFilePaths: Array\<string>, installParam?: InstallParam): Promise\<void>
581
582安装指定路径下的应用包。使用promise异步回调。</br>此接口只能安装分发类型为enterprise_mdm(MDM应用)和enterprise_normal(普通企业应用)类型的应用,可以通过[getBundleInfoForSelf](../apis-ability-kit/js-apis-bundleManager.md#bundlemanagergetbundleinfoforself)接口查询应用自身的[BundleInfo](../apis-ability-kit/js-apis-bundleManager-bundleInfo.md),其中BundleInfo.appInfo.appDistributionType为应用的分发类型。
583
584**需要权限:** ohos.permission.ENTERPRISE_INSTALL_BUNDLE
585
586**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
587
588**模型约束:** 此接口仅可在Stage模型下使用。
589
590**参数:**
591
592| 参数名       | 类型                                                    | 必填 | 说明                   |
593| ------------ | ------------------------------------------------------- | ---- | ---------------------- |
594| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。         |
595| hapFilePaths | Array\<string>                                          | 是   | 待安装应用包路径数组。 |
596| installParam | [InstallParam](#installparam)                           | 否   | 应用包安装参数。       |
597
598**返回值:**
599
600| 类型                | 说明                                                    |
601| ------------------- | ------------------------------------------------------- |
602| Promise&lt;void&gt; | 无返回结果的Promise对象。当应用程序包安装失败时,抛出错误对象。 |
603
604**错误码**:
605
606以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
607
608| 错误码ID | 错误信息                                                     |
609| -------- | ------------------------------------------------------------ |
610| 9200001  | The application is not an administrator application of the device. |
611| 9200002  | The administrator application does not have permission to manage the device. |
612| 9201002  | Failed to install the application.                           |
613| 201      | Permission verification failed. The application does not have the permission required to call the API. |
614| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
615
616**示例:**
617
618```ts
619import { bundleManager } from '@kit.MDMKit';
620import { Want } from '@kit.AbilityKit';
621import { BusinessError } from '@kit.BasicServicesKit';
622
623// 为当前用户安装应用
624let wantTemp: Want = {
625  // 需根据实际情况进行替换
626  bundleName: 'com.example.myapplication',
627  abilityName: 'EntryAbility'
628};
629// 需根据实际情况进行替换
630let hapFilePaths: Array<string> = ['/data/storage/el2/base/haps/entry/testinstall/ExtensionTest.hap'];
631
632bundleManager.install(wantTemp, hapFilePaths).then(() => {
633  console.info('Succeeded in installing bundles.');
634}).catch((err: BusinessError) => {
635  console.error(`Failed to install bundles. Code is ${err.code}, message is ${err.message}`);
636});
637```
638
639```ts
640import { bundleManager } from '@kit.MDMKit';
641import { Want } from '@kit.AbilityKit';
642import { BusinessError } from '@kit.BasicServicesKit';
643
644// 为所有用户安装应用
645let wantTemp: Want = {
646  // 需根据实际情况进行替换
647  bundleName: 'com.example.myapplication',
648  abilityName: 'EntryAbility'
649};
650// 需根据实际情况进行替换
651let hapFilePaths: Array<string> = ['/data/storage/el2/base/haps/entry/testinstall/ExtensionTest.hap'];
652const params: Record<string, string> = {
653  'ohos.bms.param.enterpriseForAllUser': 'true'
654};
655let installParam: bundleManager.InstallParam = {
656  // 需根据实际情况进行替换
657  userId: 100,
658  installFlag: 0,
659  parameters: params
660};
661bundleManager.install(wantTemp, hapFilePaths, installParam).then(() => {
662  console.info('Succeeded in installing bundles.');
663}).catch((err: BusinessError) => {
664  console.error(`Failed to install bundles. Code is ${err.code}, message is ${err.message}`);
665});
666```
667
668## bundleManager.getInstalledBundleList<sup>20+</sup>
669
670getInstalledBundleList(admin: Want, accountId: number): Promise\<Array\<BundleInfo>>
671
672获取设备指定用户下已安装应用列表。使用Promise异步回调。
673
674**需要权限:** ohos.permission.ENTERPRISE_GET_ALL_BUNDLE_INFO
675
676**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
677
678**模型约束:** 此接口仅可在Stage模型下使用。
679
680**参数:**
681
682| 参数名       | 类型                                                    | 必填 | 说明                   |
683| ------------ | ------------------------------------------------------- | ---- | ---------------------- |
684| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 企业设备管理扩展组件。         |
685| accountId    | number                                                  | 是   | 用户ID,取值为正整数,取值范围:大于等于0。<br> accountId可以通过@ohos.account.osAccount中的[getOsAccountLocalId](../apis-basic-services-kit/js-apis-osAccount.md#getosaccountlocalid9-1)等接口来获取。 |
686
687**返回值:**
688
689| 类型                | 说明                                                    |
690| ------------------- | ------------------------------------------------------- |
691| Promise&lt;Array&lt;[BundleInfo](#bundleinfo20)&gt;&gt; | Promise对象,返回已安装应用包信息。 |
692
693**错误码**:
694
695以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
696
697| 错误码ID | 错误信息                                                     |
698| -------- | ------------------------------------------------------------ |
699| 9200001  | The application is not an administrator application of the device. |
700| 9200002  | The administrator application does not have permission to manage the device. |                          |
701| 201      | Permission verification failed. The application does not have the permission required to call the API. |
702
703**示例:**
704
705```ts
706import { Want } from '@kit.AbilityKit';
707import { BusinessError } from '@kit.BasicServicesKit';
708import { bundleManager } from '@kit.MDMKit';
709
710let wantTemp: Want = {
711  // 需根据实际情况进行替换
712  bundleName: 'com.example.myapplication',
713  abilityName: 'EntryAbility'
714};
715// 需根据实际情况进行替换
716let accountId: number = 100;
717bundleManager.getInstalledBundleList(wantTemp, accountId).then((result) => {
718  console.info('Succeeded in getting installed bundle list.');
719}).catch((err: BusinessError) => {
720  console.error(`Failed to get installed bundle list. Code is ${err.code}, message is ${err.message}`);
721});
722```
723
724## InstallParam
725
726应用包安装需指定的参数信息。
727
728**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
729
730| 名称                     | 类型                   | 只读 | 可选 | 说明                                                         |
731| ------------------------ | ---------------------- | ---- | ---- | ------------------------------------------------------------ |
732| userId                   | number                 | 否   | 是 | 指示用户id,默认值:调用方所在用户,取值范围:大于等于0。    |
733| installFlag              | number                 | 否   | 是 |安装标志。枚举值:0:应用初次安装,1:应用覆盖安装,2:应用免安装,默认值为应用初次安装。 |
734| parameters<sup>19+</sup> | Record&lt;string, string&gt; | 否   | 是 | 扩展参数,默认值为空。key取值支持"ohos.bms.param.enterpriseForAllUser",若对应的value值为"true",表示为所有用户安装应用。 |
735
736## bundleManager.addInstallationAllowedAppDistributionTypes<sup>20+</sup>
737
738addInstallationAllowedAppDistributionTypes(admin: Want, appDistributionTypes: Array&lt;AppDistributionType&gt;): void
739
740添加可安装应用的分发类型。添加成功后,当前设备可以安装对应分发类型的应用,但无法安装[AppDistributionType](#appdistributiontype20)中未添加的分发类型的应用。<br/>
741应用程序签名证书的分发类型详细介绍请参见[ApplicationInfo](../apis-ability-kit/js-apis-bundleManager-applicationInfo.md#applicationinfo-1)的appDistributionType属性。
742
743**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
744
745**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
746
747**模型约束:** 此接口仅可在Stage模型下使用。
748
749**参数:**
750
751| 参数名       | 类型                                                       | 必填 | 说明                                                         |
752| ------------ | -------------------------------------------------------    | ---- | ------------------------------------------------------------ |
753| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md)    | 是   | 企业设备管理扩展组件。                                       |
754| appDistributionTypes  | Array&lt;[AppDistributionType](#appdistributiontype20)&gt;  | 是   | 应用程序签名证书的分发类型数组。 |
755
756**错误码**:
757
758以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
759
760| 错误码ID | 错误信息                                                     |
761| -------- | ------------------------------------------------------------ |
762| 9200001  | The application is not an administrator application of the device. |
763| 9200002  | The administrator application does not have permission to manage the device. |
764| 9200012  | Parameter verification failed.                               |
765| 201      | Permission verification failed. The application does not have the permission required to call the API. |
766
767**示例:**
768
769```ts
770import { Want } from '@kit.AbilityKit';
771import { BusinessError } from '@kit.BasicServicesKit';
772import { bundleManager } from '@kit.MDMKit';
773
774let wantTemp: Want = {
775  //需根据实际情况进行替换
776  bundleName: 'com.example.myapplication',
777  abilityName: 'EntryAbility'
778};
779try {
780  let appDistributionTypes: Array<bundleManager.AppDistributionType> = [bundleManager.AppDistributionType.APP_GALLERY];
781  bundleManager.addInstallationAllowedAppDistributionTypes(wantTemp, appDistributionTypes);
782  console.info('Succeeded in adding allowed appDistributionTypes.');
783} catch (err) {
784  console.error(`Failed to add allowed appDistributionTypes. Code: ${err.code}, message: ${err.message}`);
785}
786```
787
788## bundleManager.removeInstallationAllowedAppDistributionTypes<sup>20+</sup>
789
790removeInstallationAllowedAppDistributionTypes(admin: Want, appDistributionTypes: Array&lt;AppDistributionType&gt;): void
791
792移除应用的分发类型。若只移除了数组中部分的分发类型,则当前设备可以安装数组中剩下的分发类型的应用,但无法安装[AppDistributionType](#appdistributiontype20)中未添加的分发类型的应用。<br/>
793应用程序签名证书的分发类型详细介绍请参见[ApplicationInfo](../apis-ability-kit/js-apis-bundleManager-applicationInfo.md#applicationinfo-1)的appDistributionType属性。
794
795**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
796
797**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
798
799**模型约束:** 此接口仅可在Stage模型下使用。
800
801**参数:**
802
803| 参数名       | 类型                                                       | 必填 | 说明                                                         |
804| ------------ | -------------------------------------------------------    | ---- | ------------------------------------------------------------ |
805| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md)    | 是   | 企业设备管理扩展组件。                                       |
806| appDistributionTypes  | Array&lt;[AppDistributionType](#appdistributiontype20)&gt;  | 是 | 应用程序签名证书的分发类型数组。 |
807
808**错误码**:
809
810以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
811
812| 错误码ID | 错误信息                                                     |
813| -------- | ------------------------------------------------------------ |
814| 9200001  | The application is not an administrator application of the device. |
815| 9200002  | The administrator application does not have permission to manage the device. |
816| 9200012  | Parameter verification failed.                               |
817| 201      | Permission verification failed. The application does not have the permission required to call the API. |
818
819**示例:**
820
821```ts
822import { Want } from '@kit.AbilityKit';
823import { BusinessError } from '@kit.BasicServicesKit';
824import { bundleManager } from '@kit.MDMKit';
825
826let wantTemp: Want = {
827  //需根据实际情况进行替换
828  bundleName: 'com.example.myapplication',
829  abilityName: 'EntryAbility'
830};
831try {
832  let appDistributionTypes: Array<bundleManager.AppDistributionType> = [bundleManager.AppDistributionType.APP_GALLERY];
833  bundleManager.removeInstallationAllowedAppDistributionTypes(wantTemp, appDistributionTypes);
834  console.info('Succeeded in removing allowed appDistributionTypes.');
835} catch (err) {
836  console.error(`Failed to remove allowed appDistributionTypes. Code: ${err.code}, message: ${err.message}`);
837}
838```
839
840## bundleManager.getInstallationAllowedAppDistributionTypes<sup>20+</sup>
841
842getInstallationAllowedAppDistributionTypes(admin: Want): Array&lt;AppDistributionType&gt;
843
844获取可安装的应用程序签名证书的分发类型。
845
846**需要权限:** ohos.permission.ENTERPRISE_SET_BUNDLE_INSTALL_POLICY
847
848**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
849
850**模型约束:** 此接口仅可在Stage模型下使用。
851
852**参数:**
853
854| 参数名       | 类型                                                       | 必填 | 说明                                                         |
855| ------------ | -------------------------------------------------------    | ---- | ------------------------------------------------------------ |
856| admin        | [Want](../apis-ability-kit/js-apis-app-ability-want.md)    | 是   | 企业设备管理扩展组件。                                       |
857
858**返回值:**
859
860| 类型                               | 说明                      |
861| ---------------------------------- | ------------------------- |
862| Array&lt;[AppDistributionType](#appdistributiontype20)&gt; | 应用程序签名证书的分发类型数组。 |
863
864**错误码**:
865
866以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
867
868| 错误码ID | 错误信息                                                     |
869| -------- | ------------------------------------------------------------ |
870| 9200001  | The application is not an administrator application of the device. |
871| 9200002  | The administrator application does not have permission to manage the device. |                     |
872| 201      | Permission verification failed. The application does not have the permission required to call the API. |
873
874**示例:**
875
876```ts
877import { Want } from '@kit.AbilityKit';
878import { BusinessError } from '@kit.BasicServicesKit';
879import { bundleManager } from '@kit.MDMKit';
880
881let wantTemp: Want = {
882  //需根据实际情况进行替换
883  bundleName: 'com.example.edmtest',
884  abilityName: 'com.example.edmtest.EnterpriseAdminAbility'
885};
886try {
887  let result: Array<bundleManager.AppDistributionType> = bundleManager.getInstallationAllowedAppDistributionTypes(wantTemp);
888  console.info(`Succeeded in getting allowed appDistributionTypes. Result: ${JSON.stringify(result)}`);
889} catch (err) {
890  console.error(`Failed to get allowed appDistributionTypes. Code: ${err.code}, message: ${err.message}`);
891}
892```
893
894## AppDistributionType<sup>20+</sup>
895
896应用程序签名证书的分发类型。详细介绍请参见[ApplicationInfo](../apis-ability-kit/js-apis-bundleManager-applicationInfo.md#applicationinfo-1)的appDistributionType属性。
897
898**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
899
900| 名称         | 值 | 说明                            |
901| ----------- | -------- | ------------------------------- |
902| APP_GALLERY | 1  | 应用市场安装的应用。 |
903| ENTERPRISE | 2  | 企业应用。 |
904| ENTERPRISE_NORMAL | 3  | 普通企业应用。 |
905| ENTERPRISE_MDM | 4  | 企业MDM应用。 |
906| INTERNALTESTING | 5  | 应用市场内测的应用。 |
907| CROWDTESTING | 6  | 众包测试应用。 |
908
909## BundleInfo<sup>20+</sup>
910
911描述应用包信息。
912
913**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
914
915| 名称                              | 类型                                                         | 只读 | 可选 | 说明                                                         |
916| --------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
917| name                              | string                                                       | 是   | 否   | 应用包的名称,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的bundleName字段。 |
918| vendor                            | string                                                       | 是   | 否   | 应用包的供应商,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的vendor字段。 |
919| versionCode                       | number                                                       | 是   | 否   | 应用包的版本号,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的versionCode字段。 |
920| versionName                       | string                                                       | 是   | 否   | 应用包的版本文本描述信息,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的versionName字段。 |
921| minCompatibleVersionCode          | number                                                       | 是   | 否   | 分布式场景下的应用包兼容的最低版本,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的minCompatibleVersionCode字段。 |
922| targetVersion                     | number                                                       | 是   | 否   | 应用运行目标版本,对应[app.json5](../../quick-start/app-configuration-file.md)中配置的targetAPIVersion字段。 |
923| appInfo                           | [ApplicationInfo](#applicationinfo20)                        | 是   | 否   | 应用程序信息,包括应用程序名称、应用程序的安装目录等。 |
924| signatureInfo                     | [SignatureInfo](#signatureinfo20)                            | 是   | 否   | 应用包的签名信息。 |
925| installTime                       | number                                                       | 是   | 否   | 应用包安装时间戳,表示从1970-01-01 08:00:00 UTC+8逝去的毫秒数,单位毫秒。 |
926| updateTime                        | number                                                       | 是   | 否   | 应用包更新时间戳,表示从1970-01-01 08:00:00 UTC+8逝去的毫秒数,单位毫秒。 |
927| appIndex                          | number                                                       | 是   | 否   | 应用包的分身索引标识,仅在分身应用中生效。 |
928| firstInstallTime                  | number                                                       | 是   | 是   | 应用在当前设备的首次安装时间戳,表示从1970-01-01 08:00:00 UTC+8逝去的毫秒数,单位毫秒,预置应用的首次安装时间戳为1533657660000。 |
929
930
931## SignatureInfo<sup>20+</sup>
932
933描述应用包的签名信息。
934
935**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
936
937| 名称      | 类型           | 只读 | 可选 | 说明                        |
938| --------- | -------------- | ---- | ---- | --------------------------- |
939| appId     | string         | 是   | 否   | 应用的appId。                 |
940|fingerprint| string         | 是   | 否   | 应用包的指纹信息。使用的签名证书发生变化,该字段会发生变化。          |
941|appIdentifier| string         | 是   | 否   | 应用的唯一标识,是AppGallery Connect创建应用时分配的[APP ID](https://developer.huawei.com/consumer/cn/doc/app/agc-help-createharmonyapp-0000001945392297),为云端统一分配的随机字符串。该ID在应用全生命周期中不会发生变化,包括版本升级、证书变更、开发者公私钥变更、应用转移等。          |
942|certificate| string         | 是   | 是   | 应用的证书公钥。           |
943
944
945## ApplicationInfo<sup>20+</sup>
946
947应用程序信息。
948
949**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
950
951| 名称                       | 类型                                                         | 只读 | 可选 | 说明                                                         |
952| -------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
953| name                       | string                                                       | 是   | 否   | 应用的Bundle名称。                                                 |
954| description                | string                                                       | 是   | 否   | 应用的描述信息,使用示例:`"description": $string: mainability_description"`。关于description的详细信息可参见descriptionResource字段说明。 |
955| descriptionId              | number                                                       | 是   | 否   | 应用的描述信息的资源id。 |
956| enabled                    | boolean                                                      | 是   | 否   | 判断应用程序是否可以使用,true表示可以使用,false表示不可使用。 |
957| label                      | string                                                       | 是   | 否   | 应用的名称,使用示例:`"label": "$string: mainability_description"`。关于label的详细信息可参见labelResource字段说明。 |
958| labelId                    | number                                                       | 是   | 否   | 应用名称的资源id。 |
959| icon                       | string                                                       | 是   | 否   | 应用程序的图标,使用示例:`"icon": "$media:icon"`。关于icon的详细信息可参见iconResource字段说明。 |
960| iconId                     | number                                                       | 是   | 否   | 应用程序图标的资源id。 |
961| process                    | string                                                       | 是   | 否   | 应用程序的进程名称。 |
962| codePath                   | string                                                       | 是   | 否   | 应用程序的安装目录。 |
963| removable                  | boolean                                                      | 是   | 否   | 应用程序是否可以被移除,true表示可以被移除,false表示不可以被移除。 |
964| accessTokenId             | number                                                       | 是   | 否   | 应用程序的accessTokenId。 |
965| uid                       | number                                                       | 是   | 否   | 应用程序的Uid。 |
966| iconResource              | [Resource](#resource20) | 是 | 否 | 应用程序的图标资源信息,包含了该资源的信息的bundleName、moduleName和id。 |
967| labelResource             | [Resource](#resource20) | 是 | 否 | 应用程序的标签资源信息,包含了该资源的信息的bundleName、moduleName和id。 |
968| descriptionResource       | [Resource](#resource20) | 是 | 否 | 应用程序的描述资源信息,包含了该资源的信息的bundleName、moduleName和id。 |
969| appDistributionType       | string                                                       | 是   | 否   | 应用程序签名证书的分发类型,分为: <br/> - app_gallery:应用市场分发的应用。 <br/> -  enterprise:企业应用,可以安装到个人设备上。<br/> -  enterprise_mdm:企业MDM应用,只能安装在企业设备上。需要设备管理特权,比如远程锁定,安装普通企业应用等。 <br/> - enterprise_normal:普通企业应用,只能通过企业MDM应用安装在企业设备上。无需设备管理特权。<br/> - os_integration:系统预置应用。<br/> - crowdtesting:众包测试应用。<br/> - internaltesting:应用市场内测的应用。<br/> - none:其他。 |
970| appProvisionType          | string                                                       | 是   | 否   | 应用程序签名证书文件的类型,支持的取值如下:<br/> - debug:调试类型。<br/> - release:发布类型。 |
971| systemApp          | boolean                                                       | 是   | 否   | 应用是否为系统应用,true表示系统应用,false表示非系统应用。 |
972| debug       | boolean                                | 是   | 否   | 标识应用是否处于调试模式,true表示应用处于调试模式,false表示应用处于非调试模式。 |
973| dataUnclearable       | boolean                      | 是   | 否   | 标识应用数据是否可被删除。true表示不可删除,false表示可以删除。 |
974| nativeLibraryPath | string                                                                     | 是   | 否   | 应用程序的本地库文件路径。                                                  |
975| appIndex    | number    | 是   | 否   | 应用包的分身索引标识,仅在分身应用中生效。 |
976| installSource    | string    | 是   | 否   | 应用程序的安装来源,支持的取值如下:<br/> - pre-installed表示应用为第一次开机时安装的预置应用。<br/> - ota表示应用为系统升级时新增的预置应用。<br/> - recovery表示卸载后再恢复的预置应用。<br/> - bundleName表示应用由此应用包名对应的应用安装。<br/> - unknown表示应用安装来源未知。 |
977| releaseType      | string    | 是   | 否   | 标识应用打包时使用的SDK的发布类型。当前SDK的发布类型可能为Canary、Beta、Release,其中Canary和Beta可能通过序号进一步细分,例如Canary1、Canary2、Beta1、Beta2等。开发者可通过对比应用打包依赖的SDK发布类型和OS的发布类型([deviceInfo.distributionOSReleaseType](../apis-basic-services-kit/js-apis-device-info.md))来判断兼容性。 |
978
979
980## Resource<sup>20+</sup>
981
982资源相关信息,包括应用包名、应用模块名、资源id。
983
984**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
985
986| 名称         | 类型     | 只读   | 可选  |说明          |
987| ---------- | ------ | ----- | ----  | ---------------|
988| bundleName | string | 否    | 否 | 应用的bundle名称。 |
989| moduleName | string | 否    | 否 | 应用的module名称。 |
990| id         | number | 否    | 否 | 资源的id值。      |
991
992