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<string>, 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<string> | 是 | 应用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<string>, 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<string> | 是 | 应用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<string> 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<string> | 返回当前用户下的应用程序包安装允许名单。 | 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<string>, 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<string> | 是 | 应用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<string>, 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<string> | 是 | 应用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<string> 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<string> | 返回当前用户下的应用程序包安装禁止名单。 | 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<string>, 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<string> | 是 | 应用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<string>, 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<string> | 是 | 应用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<string> 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<string> | 返回当前用户下的包卸载禁止名单。 | 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<void> 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<void> | 无返回结果的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<void> | 无返回结果的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<Array<[BundleInfo](#bundleinfo20)>> | 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<string, string> | 否 | 是 | 扩展参数,默认值为空。key取值支持"ohos.bms.param.enterpriseForAllUser",若对应的value值为"true",表示为所有用户安装应用。 | 735 736## bundleManager.addInstallationAllowedAppDistributionTypes<sup>20+</sup> 737 738addInstallationAllowedAppDistributionTypes(admin: Want, appDistributionTypes: Array<AppDistributionType>): 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<[AppDistributionType](#appdistributiontype20)> | 是 | 应用程序签名证书的分发类型数组。 | 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<AppDistributionType>): 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<[AppDistributionType](#appdistributiontype20)> | 是 | 应用程序签名证书的分发类型数组。 | 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<AppDistributionType> 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<[AppDistributionType](#appdistributiontype20)> | 应用程序签名证书的分发类型数组。 | 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