已合并
update: 新增DeviceModeDistributionPolicy枚举及filterBundleListByDeviceModeDistributionPolicies接口文档 #162914
Luobniz21创建于 11 天前
update: 新增DeviceModeDistributionPolicy枚举及filterBundleListByDeviceModeDistributionPolicies接口文档 #162914
已合并
共 3 个文件变更+149-1
| @@ -1672,6 +1672,65 @@ The specified bundle not found app clone preference. | |||
| 1672 | 1672 | ||
| 1673 | 1. 确认应用是否需要分身偏好。 | 1673 | 1. 确认应用是否需要分身偏好。 |
| 1674 | 2. 使用[bundleManager.setAppClonePreference](js-apis-bundleManager-sys.md#bundlemanagersetappclonepreference)设置分身偏好后重试。 | 1674 | 2. 使用[bundleManager.setAppClonePreference](js-apis-bundleManager-sys.md#bundlemanagersetappclonepreference)设置分身偏好后重试。 |
| 1675 | + | ||
| 1676 | +## 17700097 设备不支持双模式 | ||
| 1677 | + | ||
| 1678 | +**错误信息** | ||
| 1679 | + | ||
| 1680 | +The device does not support the dual mode. | ||
| 1681 | + | ||
| 1682 | +**错误描述** | ||
| 1683 | + | ||
| 1684 | +当前设备不支持双模式(即设备不支持在主模式和副模式之间切换)。 | ||
| 1685 | + | ||
| 1686 | +**可能原因** | ||
| 1687 | + | ||
| 1688 | +当前设备为非双模设备,系统参数const.sceneboard.mainmode或persist.sceneboard.ispcmode缺失或值非法。 | ||
| 1689 | + | ||
| 1690 | +**处理步骤** | ||
| 1691 | + | ||
| 1692 | +1. 确认设备是否为双模设备,可以在开发者模式下查看设备是否存在系统参数const.sceneboard.mainmode和persist.sceneboard.ispcmode。 | ||
| 1693 | +2. 若设备不支持双模式,该接口不适用,无需调用。 | ||
| 1694 | + | ||
| 1695 | +## 17700098 入参无效 | ||
| 1696 | + | ||
| 1697 | +**错误信息** | ||
| 1698 | + | ||
| 1699 | +The input parameter is invalid. It is either outside the range of valid enum values or does not include the following required enum values: [DeviceModeDistributionPolicy.UNIVERSAL_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.FULL_COMPATIBLE_DIFFERENT_PACKAGE]. | ||
| 1700 | + | ||
| 1701 | +**错误描述** | ||
H | |||
| 1702 | + | ||
| 1703 | +调用filterBundleListByDeviceModeDistributionPolicies接口时,传入的参数无效。 | ||
| 1704 | + | ||
| 1705 | +**可能原因** | ||
| 1706 | + | ||
| 1707 | +1. 传入的枚举值超出DeviceModeDistributionPolicy枚举值范围。 | ||
| 1708 | +2. 传入的枚举数组未包含所有不同包体的策略(UNIVERSAL_DIFFERENT_PACKAGE、PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE和FULL_COMPATIBLE_DIFFERENT_PACKAGE)。 | ||
| 1709 | + | ||
| 1710 | +**处理步骤** | ||
| 1711 | + | ||
| 1712 | +1. 需要检查传入的枚举值,是否有超过DeviceModeDistributionPolicy枚举值。 | ||
| 1713 | +2. 需要检查传入的枚举数组是否包含了[DeviceModeDistributionPolicy.UNIVERSAL_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.FULL_COMPATIBLE_DIFFERENT_PACKAGE],这三个在切换时必须传入。 | ||
| 1714 | + | ||
| 1715 | +## 17700099 设备正在安装卸载应用或双模切换正在处理中 | ||
| 1716 | + | ||
| 1717 | +**错误信息** | ||
| 1718 | + | ||
| 1719 | +The device is installing or uninstalling an application, or a previous API call is still being processed. Please try again. | ||
| 1720 | + | ||
| 1721 | +**错误描述** | ||
| 1722 | + | ||
| 1723 | +设备正在安装或卸载应用,或者上一次双模切换调用正在处理中,请重试。 | ||
| 1724 | + | ||
| 1725 | +**可能原因** | ||
| 1726 | + | ||
| 1727 | +设备正在安装或卸载应用,或者上一次双模切换调用正在处理中。 | ||
| 1728 | + | ||
| 1729 | +**处理步骤** | ||
| 1730 | + | ||
| 1731 | +1. 检查下设备是否正在安装、卸载应用。 | ||
| 1732 | +2. 检查下是否已经调用该接口且双模切换正在处理中。 | ||
| 1733 | +3. 等待上述操作完成后重新调用该接口。 | ||
| 1675 | <!--DelEnd--> | 1734 | <!--DelEnd--> |
| 1676 | 1735 | ||
| 1677 | ## 17700101 包管理服务异常 | 1736 | ## 17700101 包管理服务异常 |
| @@ -129,6 +129,30 @@ import { bundleManager } from '@kit.AbilityKit'; | |||
| 129 | | MAIN_APP | 1 | 默认使用主应用。 | | 129 | | MAIN_APP | 1 | 默认使用主应用。 | |
| 130 | | CLONE_APP | 2 | 默认使用分身应用。 | | 130 | | CLONE_APP | 2 | 默认使用分身应用。 | |
| 131 | 131 | ||
| 132 | +## DeviceModeDistributionPolicy | ||
| 133 | + | ||
| 134 | +设备模式分发策略枚举,用于指定应用程序如何分发到设备上。 | ||
| 135 | + | ||
| 136 | +**起始版本:** 26.1.0 | ||
| 137 | + | ||
| 138 | +**系统接口:** 此接口为系统接口。 | ||
| 139 | + | ||
| 140 | +**系统能力:** SystemCapability.BundleManager.BundleFramework.Core | ||
| 141 | + | ||
| 142 | +**模型约束:** 此接口仅可在Stage模型下使用。 | ||
| 143 | + | ||
| 144 | +| 名称 | 值 | 说明 | | ||
| 145 | +| --------------- | --- | --- | | ||
| 146 | +| UNSPECIFIED | 0 | 未指定设备模式分发策略。 | | ||
| 147 | +| MAIN_ONLY | 1 | 应用程序仅在主模式下可用。 | | ||
| 148 | +| SUB_ONLY | 2 | 应用程序仅在副模式下可用。 | | ||
| 149 | +| UNIVERSAL_IDENTICAL_PACKAGE | 3 | 应用程序在两种模式下都可用,具有相同的包体。 | | ||
| 150 | +| UNIVERSAL_DIFFERENT_PACKAGE | 4 | 应用程序在两种模式下都可用,具有不同的包体。 | | ||
| 151 | +| PARTIAL_COMPATIBLE_IDENTICAL_PACKAGE | 5 | 应用程序在不同模式之间部分兼容,具有相同的包体。 | | ||
| 152 | +| PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE | 6 | 应用程序在不同模式之间部分兼容,具有不同的包体。 | | ||
| 153 | +| FULL_COMPATIBLE_IDENTICAL_PACKAGE | 7 | 应用程序在不同模式之间完全兼容,具有相同的包体。 | | ||
| 154 | +| FULL_COMPATIBLE_DIFFERENT_PACKAGE | 8 | 应用程序在不同模式之间完全兼容,具有不同的包体。 | | ||
| 155 | + | ||
| 132 | ## bundleManager.getApplicationInfo | 156 | ## bundleManager.getApplicationInfo |
| 133 | 157 | ||
| 134 | getApplicationInfo(bundleName: string, appFlags: number, userId: number, callback: AsyncCallback\<ApplicationInfo>): void | 158 | getApplicationInfo(bundleName: string, appFlags: number, userId: number, callback: AsyncCallback\<ApplicationInfo>): void |
| @@ -6432,6 +6456,71 @@ try { | |||
| 6432 | } | 6456 | } |
| 6433 | ``` | 6457 | ``` |
| 6434 | 6458 | ||
| 6459 | +## bundleManager.filterBundleListByDeviceModeDistributionPolicies | ||
| 6460 | + | ||
| 6461 | +filterBundleListByDeviceModeDistributionPolicies(policies: Array\<DeviceModeDistributionPolicy>): Promise\<void> | ||
| 6462 | + | ||
| 6463 | +支持按设备模式分发策略过滤应用列表。使用Promise异步回调。 | ||
| 6464 | + | ||
| 6465 | +**起始版本:** 26.1.0 | ||
| 6466 | + | ||
| 6467 | +**系统接口:** 此接口为系统接口。 | ||
| 6468 | + | ||
| 6469 | +**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | ||
| 6470 | + | ||
| 6471 | +**系统能力:** SystemCapability.BundleManager.BundleFramework.Core | ||
| 6472 | + | ||
| 6473 | +**模型约束:** 此接口仅可在Stage模型下使用。 | ||
| 6474 | + | ||
| 6475 | +**参数:** | ||
| 6476 | + | ||
| 6477 | +| 参数名 | 类型 | 必填 | 说明 | | ||
| 6478 | +| ---------- | ------ | ---- | ---------------------------| | ||
| 6479 | +| policies | Array\<[DeviceModeDistributionPolicy](#devicemodedistributionpolicy)> | 是 | DeviceModeDistributionPolicy值的数组。入参不能为空,所有值必须在DeviceModeDistributionPolicy的枚举值范围内,且必须包含所有不同包体的策略(UNIVERSAL_DIFFERENT_PACKAGE、PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE和FULL_COMPATIBLE_DIFFERENT_PACKAGE)。 | | ||
| 6480 | + | ||
| 6481 | +**返回值:** | ||
| 6482 | + | ||
| 6483 | +| 类型 | 说明 | | ||
| 6484 | +| ----------------------------------------------------------- | --------------------------- | | ||
| 6485 | +| Promise\<void> | Promise对象,无返回结果。 | | ||
| 6486 | + | ||
| 6487 | +**错误码:** | ||
| 6488 | + | ||
| 6489 | +以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[包管理子系统通用错误码](errorcode-bundle.md)。 | ||
| 6490 | + | ||
| 6491 | +| 错误码ID | 错误信息 | | ||
| 6492 | +| -------- | --------------------------------------| | ||
| 6493 | +| 201 | Permission denied. | | ||
| 6494 | +| 202 | Permission denied. Non-system APP calling system API. | | ||
| 6495 | +| 17700097 | The device does not support the dual mode. | | ||
| 6496 | +| 17700098 | The input parameter is invalid. It is either outside the range of valid enum values or does not include the following required enum values: [DeviceModeDistributionPolicy.UNIVERSAL_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE, DeviceModeDistributionPolicy.FULL_COMPATIBLE_DIFFERENT_PACKAGE]. | | ||
| 6497 | +| 17700099 | The device is installing or uninstalling an application, or a previous API call is still being processed. Please try again. | | ||
| 6498 | + | ||
| 6499 | +**示例:** | ||
示例的运行通过截图需提供 ![]() ![]() | |||
| 6500 | + | ||
| 6501 | +```ts | ||
| 6502 | +import { bundleManager } from '@kit.AbilityKit'; | ||
| 6503 | +import { BusinessError } from '@kit.BasicServicesKit'; | ||
| 6504 | +import { hilog } from '@kit.PerformanceAnalysisKit'; | ||
| 6505 | + | ||
| 6506 | +let policies: Array<bundleManager.DeviceModeDistributionPolicy> = [ | ||
| 6507 | + bundleManager.DeviceModeDistributionPolicy.UNIVERSAL_DIFFERENT_PACKAGE, | ||
| 6508 | + bundleManager.DeviceModeDistributionPolicy.PARTIAL_COMPATIBLE_DIFFERENT_PACKAGE, | ||
| 6509 | + bundleManager.DeviceModeDistributionPolicy.FULL_COMPATIBLE_DIFFERENT_PACKAGE | ||
| 6510 | +]; | ||
| 6511 | + | ||
| 6512 | +try { | ||
| 6513 | + bundleManager.filterBundleListByDeviceModeDistributionPolicies(policies).then(() => { | ||
| 6514 | + hilog.info(0x0000, 'testTag', 'filterBundleListByDeviceModeDistributionPolicies successfully'); | ||
| 6515 | + }).catch((err: BusinessError) => { | ||
| 6516 | + hilog.error(0x0000, 'testTag', 'filterBundleListByDeviceModeDistributionPolicies failed. Cause: %{public}s', err.message); | ||
| 6517 | + }); | ||
| 6518 | +} catch (err) { | ||
| 6519 | + let message = (err as BusinessError).message; | ||
| 6520 | + hilog.error(0x0000, 'testTag', 'filterBundleListByDeviceModeDistributionPolicies failed. Cause: %{public}s', message); | ||
| 6521 | +} | ||
| 6522 | +``` | ||
| 6523 | + | ||
| 6435 | ## PermissionDef | 6524 | ## PermissionDef |
| 6436 | 6525 | ||
| 6437 | type PermissionDef = _PermissionDef | 6526 | type PermissionDef = _PermissionDef |
| @@ -1875,7 +1875,7 @@ try { | |||
| 1875 | | additionalInfo<sup>10+</sup> | string | 否 | 是|应用安装时的额外信息,默认值为空,最大长度为3000字节。该字段通常由操作系统运营方的应用市场在安装企业应用时指定,用于保存应用的额外信息。 | | 1875 | | additionalInfo<sup>10+</sup> | string | 否 | 是|应用安装时的额外信息,默认值为空,最大长度为3000字节。该字段通常由操作系统运营方的应用市场在安装企业应用时指定,用于保存应用的额外信息。 | |
| 1876 | | verifyCodeParams<sup>(deprecated)<sup> | Array<[VerifyCodeParam](#verifycodeparamdeprecated)> | 否 | 是| 代码签名文件参数,默认值为空,列表长度上限为500。<br/>**说明:**<br/> 从API version 10开始支持,从API version 11开始不再维护,应用的代码签名文件将集成到安装包中,不再需要通过本接口指定安装包的代码签名文件。 | | 1876 | | verifyCodeParams<sup>(deprecated)<sup> | Array<[VerifyCodeParam](#verifycodeparamdeprecated)> | 否 | 是| 代码签名文件参数,默认值为空,列表长度上限为500。<br/>**说明:**<br/> 从API version 10开始支持,从API version 11开始不再维护,应用的代码签名文件将集成到安装包中,不再需要通过本接口指定安装包的代码签名文件。 | |
| 1877 | | pgoParams<sup>11+</sup> | Array<[PGOParam](#pgoparam11)> | 否 | 是| PGO配置文件参数,默认值为空,列表长度上限为500。 | | 1877 | | pgoParams<sup>11+</sup> | Array<[PGOParam](#pgoparam11)> | 否 | 是| PGO配置文件参数,默认值为空,列表长度上限为500。 | |
| 1878 | -| parameters<sup>15+</sup> | Array<[Parameters](#parameters15)> | 否 | 是| 扩展参数,Parameters类型的数组,默认值为空,列表长度上限为1000。Parameters.key取值支持:</br> - "ohos.bms.param.renameInstall":若对应value值为“true”,表示安装时使用共享目录将安装包从应用沙箱移动到安装目录,否则使用常规目录将安装包从应用沙箱拷贝到安装目录。</br> - "ohos.bms.param.enterpriseForAllUser":若对应value值为“true”,表示在安装企业应用时为所有用户安装,该参数只对[appDistributionType](js-apis-bundleManager-applicationInfo.md#applicationinfo-1)为enterprise_mdm和enterprise_normal的应用生效。</br> - "ohos.bms.param.verifyUninstallRule":若对应value值为“true”,表示设置卸载处置规则,用于拦截应用卸载。</br> - "ohos.bms.param.enterpriseManifest":value值为json文件的沙箱路径,json文件用于存储应用的描述文件,包括应用包名等,该字段用于企业应用克隆场景。克隆时,若该json文件存在,则将旧机的应用安装包拷贝到新机进行安装。</br> - "ohos.bms.param.installBundleName":value值为应用的包名,该字段用于应用安装场景(从API version 23开始支持)。如果安装时传入了该字段,则在应用安装过程中调用接口[getBundleInstallStatus](./js-apis-bundleManager.md#bundlemanagergetbundleinstallstatus)能够查询到应用正在安装的状态。</br> - "ohos.bms.param.installAllowDowngrade":若对应value值为“true”,该字段表示支持应用降级安装(从API version 23开始支持),即设备已安装较高版本的应用,也可以覆盖安装较低版本的应用。仅支持签名证书分发类型为app_gallery或者签名证书类型为debug的三方应用降级安装。使用降级安装能力需要同时申请ohos.permission.INSTALL_BUNDLE和ohos.permission.INSTALL_ALLOW_DOWNGRADE权限。</br> - "ohos.bms.param.originalInstallSource":用于指定待安装应用的原始安装来源,对应value取值范围为[ApplicationInfo](../../reference/apis-ability-kit/js-apis-bundleManager-applicationInfo.md#applicationinfo-1)中的installSource字段取值。使用该参数安装的应用,其安装来源installSource会被设置为指定的value值。参数生效条件:待安装应用必须未在设备上安装;当value指定为应用包名时,要求指定的应用必须已安装且为系统应用。从API version 23开始支持。| | 1878 | +| parameters<sup>15+</sup> | Array<[Parameters](#parameters15)> | 否 | 是| 扩展参数,Parameters类型的数组,默认值为空,列表长度上限为1000。Parameters.key取值支持:</br> - "ohos.bms.param.renameInstall":若对应value值为“true”,表示安装时使用共享目录将安装包从应用沙箱移动到安装目录,否则使用常规目录将安装包从应用沙箱拷贝到安装目录。</br> - "ohos.bms.param.enterpriseForAllUser":若对应value值为“true”,表示在安装企业应用时为所有用户安装,该参数只对[appDistributionType](js-apis-bundleManager-applicationInfo.md#applicationinfo-1)为enterprise_mdm和enterprise_normal的应用生效。</br> - "ohos.bms.param.verifyUninstallRule":若对应value值为“true”,表示设置卸载处置规则,用于拦截应用卸载。</br> - "ohos.bms.param.enterpriseManifest":value值为json文件的沙箱路径,json文件用于存储应用的描述文件,包括应用包名等,该字段用于企业应用克隆场景。克隆时,若该json文件存在,则将旧机的应用安装包拷贝到新机进行安装。</br> - "ohos.bms.param.installBundleName":value值为应用的包名,该字段用于应用安装场景(从API version 23开始支持)。如果安装时传入了该字段,则在应用安装过程中调用接口[getBundleInstallStatus](./js-apis-bundleManager.md#bundlemanagergetbundleinstallstatus)能够查询到应用正在安装的状态。</br> - "ohos.bms.param.installAllowDowngrade":若对应value值为“true”,该字段表示支持应用降级安装(从API version 23开始支持),即设备已安装较高版本的应用,也可以覆盖安装较低版本的应用。仅支持签名证书分发类型为app_gallery或者签名证书类型为debug的三方应用降级安装。使用降级安装能力需要同时申请ohos.permission.INSTALL_BUNDLE和ohos.permission.INSTALL_ALLOW_DOWNGRADE权限。</br> - "ohos.bms.param.originalInstallSource":用于指定待安装应用的原始安装来源,对应value取值范围为[ApplicationInfo](../../reference/apis-ability-kit/js-apis-bundleManager-applicationInfo.md#applicationinfo-1)中的installSource字段取值。使用该参数安装的应用,其安装来源installSource会被设置为指定的value值。参数生效条件:待安装应用必须未在设备上安装;当value指定为应用包名时,要求指定的应用必须已安装且为系统应用。从API version 23开始支持。</br> - "ohos.bms.param.deviceModeDistributionPolicy":value值为[DeviceModeDistributionPolicy](./js-apis-bundleManager-sys.md#devicemodedistributionpolicy)枚举值的十进制字符串(例如"4")。用于指定正在安装应用的设备模式分发策略。若未传入该键,则策略默认为UNSPECIFIED(0)。若值非法(不是十进制整数字符串或超出[0, 8]范围),则忽略该键,策略默认为UNSPECIFIED。从API版本26.0.0开始支持。| |
| 1879 | ## UninstallParam<sup>10+</sup> | 1879 | ## UninstallParam<sup>10+</sup> |
| 1880 | 1880 | ||
| 1881 | 共享包卸载需指定的参数信息。 | 1881 | 共享包卸载需指定的参数信息。 |


[次要] 错误码17700098的错误描述和可能原因中,枚举值数组列表的逗号后缺少空格,与错误信息中的格式不一致,建议补充空格。