diff --git a/zh-cn/application-dev/reference/apis-ability-kit/errorcode-ability.md b/zh-cn/application-dev/reference/apis-ability-kit/errorcode-ability.md index c3a58740863f04c56b70afb74791285ee9a1a16d..1696a38696247d2102c715c13b65eb66217c40ce 100644 --- a/zh-cn/application-dev/reference/apis-ability-kit/errorcode-ability.md +++ b/zh-cn/application-dev/reference/apis-ability-kit/errorcode-ability.md @@ -1464,4 +1464,58 @@ The input bundleName is not a system HSP. **处理步骤** 检查bundleName是否正确。 - + +## 16000202 仅支持为appService类型的ExtensionAbility设置保活 + +**错误信息** + +Invalid main element type. + +**错误描述** + +如果设置保活的对象不是appService类型的ExtensionAbility,方法将返回该错误码。 + +**可能原因** + +应用中entry类型的HAP的module.json5配置文件中的mainElement字段不是appService类型的ExtensionAbility。 + +**处理步骤** + +修改应用中entry类型的HAP的module.json5配置文件的mainElement字段为appService类型的ExtensionAbility。 + +## 16000203 无法更改AppServiceExtensionAbility保活状态 + +**错误信息** + +Cannot change the keep-alive status. + +**错误描述** + +无法更改AppServiceExtensionAbility保活状态时,方法返回该错误码。 + +**可能原因** + +AppServiceExtensionAbility的保活策略由MDM设置为用户不可取消,或者由其他用户设置为保活。 + +**处理步骤** + +MDM取消设置保活,或设置保活策略为用户可取消;在设置保活的用户下取消AppServiceExtensionAbility的保活。 + +## 16000204 指定的应用未安装在userId为1的用户下 + +**错误信息** + +The target bundle is not in u1. + +**错误描述** + +当指定的应用未安装在userId为1的用户下时,方法返回该错误码。 + +**可能原因** + +指定的应用未安装在userId为1的用户下。 + +**处理步骤** + +将指定的应用安装在userId为1的用户下。 + \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager-sys.md b/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager-sys.md index 2458b61dfee2a172d8455abb400a152925ab274d..6165d5fe464330f1a70ab37fe184c3a7dffe0d17 100644 --- a/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager-sys.md +++ b/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager-sys.md @@ -57,7 +57,7 @@ import { appManager } from '@kit.AbilityKit'; ## KeepAliveBundleInfo14+ -定义应用保活信息,可以通过[getKeepAliveBundles](#appmanagergetkeepalivebundles14)获取当前应用的相关信息。 +定义应用保活信息,可以通过[getKeepAliveBundles](#appmanagergetkeepalivebundles14)或[getKeepAliveAppServiceExtensions](#appmanagergetkeepaliveappserviceextensions20)获取。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core @@ -68,6 +68,8 @@ import { appManager } from '@kit.AbilityKit'; | bundleName | string | 否 | 否 | Bundle名称。 | | type | [KeepAliveAppType](#keepaliveapptype14) | 否 | 否 | 表示被保活应用的应用类型。 | | setter | [KeepAliveSetter](#keepalivesetter14) | 否 | 否 | 表示应用保活设置者类型。 | +| setterUserId20+ | number | 否 | 是 | 应用保活设置者的用户ID。 | +| allowUserToCancel20+ | boolean | 否 | 是 | 表示是否允许用户取消保活。true表示允许,false表示不允许。 | ## appManager.isSharedBundleRunning10+ @@ -1870,3 +1872,120 @@ try { console.error(`[appManager] killProcessesInBatch error: ${code}, ${message}`); } ``` + +## appManager.setKeepAliveForAppServiceExtension20+ + +setKeepAliveForAppServiceExtension(bundleName: string, enabled: boolean): Promise\ + +为AppServiceExtensionAbility设置保活或取消保活。使用Promise异步回调。 +> **说明:** +> +> - 本接口当前仅支持2in1设备。 +> - 仅当应用安装在userId为1的用户下,且应用中entry类型的HAP的module.json5配置文件中的mainElement字段配置为AppServiceExtensionAbility时,该接口才生效。 + +**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统接口**:此接口为系统接口。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| bundleName | string | 是 | 表示要设置保活的应用包名。 | +| enabled | boolean | 是 | 表示是否进行应用保活。true表示保活,false表示不保活。 | + +**返回值:** + +| 类型 | 说明 | +| -------- | -------- | +| Promise\ | Promise对象。无返回结果的Promise对象。| + +**错误码**: + +以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 201 | Permission denied. | +| 202 | Not system application. | +| 801 | Capability not supported. | +| 16000050 | Internal error. | +| 16000081 | Failed to obtain the target application information. | +| 16000202 | Invalid main element type. | +| 16000203 | Cannot change the keep-alive status. | +| 16000204 | The target bundle is not in u1. | + +**示例:** + +```ts +import { appManager } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; + +try { + let bundleName = "ohos.samples.keepaliveapp"; + appManager.setKeepAliveForAppServiceExtension(bundleName, true).then(() => { + console.info(`setKeepAliveForAppServiceExtension success`); + }).catch((err: BusinessError) => { + console.error(`setKeepAliveForAppServiceExtension fail, err: ${JSON.stringify(err)}`); + }); +} catch (paramError) { + let code = (paramError as BusinessError).code; + let message = (paramError as BusinessError).message; + console.error(`[appManager] setKeepAliveForAppServiceExtension error: ${code}, ${message}`); +} +``` + +## appManager.getKeepAliveAppServiceExtensions20+ + +getKeepAliveAppServiceExtensions(): Promise\> + +获取所有保活的AppServiceExtensionAbility应用信息,此信息由[KeepAliveBundleInfo](#keepalivebundleinfo14)定义。使用Promise异步回调。 + +> **说明:** +> +> - 本接口当前仅支持2in1设备。 +> - 仅当应用安装在userId为1的用户下,且应用中entry类型的HAP的module.json5配置文件中的mainElement字段配置为AppServiceExtensionAbility时,该接口才生效。 + +**需要权限**:ohos.permission.MANAGE_APP_KEEP_ALIVE + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Core + +**系统接口**:此接口为系统接口。 + +**返回值:** + +| 类型 | 说明 | +| -------- | -------- | +| Promise\> | Promise对象,返回用户保活应用信息的数组。| + +**错误码**: + +以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 201 | Permission denied. | +| 202 | Not system application. | +| 801 | Capability not supported. | +| 16000050 | Internal error. | + +**示例:** + +```ts +import { appManager } from '@kit.AbilityKit'; +import { BusinessError } from '@kit.BasicServicesKit'; + +try { + appManager.getKeepAliveAppServiceExtensions().then((data) => { + console.info(`getKeepAliveAppServiceExtensions success, data: ${JSON.stringify(data)}`); + }).catch((err: BusinessError) => { + console.error(`getKeepAliveAppServiceExtensions fail, err: ${JSON.stringify(err)}`); + }); +} catch (paramError) { + let code = (paramError as BusinessError).code; + let message = (paramError as BusinessError).message; + console.error(`[appManager] getKeepAliveAppServiceExtensions error: ${code}, ${message}`); +} +``` \ No newline at end of file