# AbilityDelegator The **AbilityDelegator** module provides APIs for managing [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instances that are used to monitor the lifecycle state changes of a specified ability. You can use the APIs to add and remove **AbilityMonitor** instances, wait for an ability to reach the **onCreate** lifecycle state, set the waiting time, obtain the lifecycle state of an ability, obtain the top ability of the current application, and start an ability. > **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > > The APIs of this module can be used only in [arkxtest](../../application-test/arkxtest-guidelines.md). ## Modules to Import ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; ``` ## Usage An **AbilityDelegator** object is obtained by calling **getAbilityDelegator** in **abilityDelegatorRegistry**. ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; ``` ## AbilityDelegator ### addAbilityMonitor9+ addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\): void Adds an **AbilityMonitor** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the **AbilityMonitor** instance is added, **err** is **undefined**. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info(`onAbilityCreateCallback, data: ${JSON.stringify(data)}`); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityMonitor(monitor, (error: BusinessError) => { console.error(`addAbilityMonitor fail, error: ${JSON.stringify(error)}`); }); ``` ### addAbilityMonitor9+ addAbilityMonitor(monitor: AbilityMonitor): Promise\ Adds an **AbilityMonitor** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ |Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityMonitor(monitor).then(() => { console.info('addAbilityMonitor promise'); }); ``` ### addAbilityMonitorSync10+ addAbilityMonitorSync(monitor: AbilityMonitor): void Adds an **AbilityMonitor** instance. This API returns the result synchronously. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityMonitorSync failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityMonitorSync(monitor); ``` ### removeAbilityMonitor9+ removeAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\): void Removes an **AbilityMonitor** instance. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the **AbilityMonitor** instance is removed, **err** is **undefined**. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityMonitor(monitor, (error: BusinessError) => { console.error(`removeAbilityMonitor fail, error: ${JSON.stringify(error)}`); }); ``` ### removeAbilityMonitor9+ removeAbilityMonitor(monitor: AbilityMonitor): Promise\ Removes an **AbilityMonitor** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityMonitor failed. | - Example ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityMonitor(monitor).then(() => { console.info('removeAbilityMonitor promise'); }); ``` ### removeAbilityMonitorSync10+ removeAbilityMonitorSync(monitor: AbilityMonitor): void Removes an **AbilityMonitor** instance. This API returns the result synchronously. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityMonitorSync failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityMonitorSync(monitor); ``` ### waitAbilityMonitor9+ waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback\): void Waits for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| | callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined** and **data** is the **Ability** instance obtained. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityMonitor(monitor, (error: BusinessError, data: UIAbility) => { if (error) { console.error(`waitAbilityMonitor fail, error: ${JSON.stringify(error)}`); } else { console.log(`waitAbilityMonitor success, data: ${JSON.stringify(data)}`); } }); ``` ### waitAbilityMonitor9+ waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback\): void Waits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses an asynchronous callback to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| | timeout | number | Yes | Maximum waiting time, in ms. | | callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes | Callback used to return the result. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let timeout = 100; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityMonitor(monitor, timeout, (error: BusinessError, data: UIAbility) => { if (error && error.code !== 0) { console.error(`waitAbilityMonitor fail, error: ${JSON.stringify(error)}`); } else { console.log(`waitAbilityMonitor success, data: ${JSON.stringify(data)}`); } }); ``` ### waitAbilityMonitor9+ waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise\ Waits a period of time for the **Ability** instance that matches the **AbilityMonitor** instance to reach the **onCreate** lifecycle state and returns the **Ability** instance. This API uses a promise to return the result. Multi-thread concurrent calls are not supported. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) | Yes | [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) instance.| | timeout | number | No | Maximum waiting time, in ms. | **Return value** | Type | Description | | ----------------------------------------------------------- | -------------------------- | | Promise\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Promise used to return the **Ability** instance obtained.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let monitor: abilityDelegatorRegistry.AbilityMonitor = { abilityName: 'abilityname', onAbilityCreate: onAbilityCreateCallback }; function onAbilityCreateCallback(data: UIAbility) { console.info('onAbilityCreateCallback'); } abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityMonitor(monitor).then((data: UIAbility) => { console.info('waitAbilityMonitor promise'); }); ``` ### getAppContext9+ getAppContext(): Context Obtains the application context. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Return value** | Type | Description | | ------------------------------------- | ------------------------------------------- | | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | [Context](../apis-ability-kit/js-apis-inner-application-context.md).| **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); let context = abilityDelegator.getAppContext(); ``` ### getAbilityState9+ getAbilityState(ability: UIAbility): number Obtains the lifecycle state of an ability. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------- | ---- | --------------- | | ability | [UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md) | Yes | Target ability.| **Return value** | Type | Description | | ------ | ------------------------------------------------------------ | | number | Lifecycle state of the ability, which is defined by **AbilityLifecycleState**.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; let state = abilityDelegator.getAbilityState(ability); console.info('getAbilityState ${state}'); }); ``` ### getCurrentTopAbility9+ getCurrentTopAbility(callback: AsyncCallback\): void Obtains the top ability of this application. This API uses an asynchronous callback to return the result. It cannot be called in the worker thread. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------ | | callback | AsyncCallback\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Yes | Callback used to return the result. If the top ability is obtained, **err** is **undefined** and **data** is the **Ability** instance obtained. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling GetCurrentTopAbility failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; }); ``` ### getCurrentTopAbility9+ getCurrentTopAbility(): Promise\ Obtains the top ability of this application. This API uses a promise to return the result. It cannot be called in the worker thread. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Return value** | Type | Description | | ----------------------------------------------------------- | -------------------------------------- | | Promise\<[UIAbility](../apis-ability-kit/js-apis-app-ability-uiAbility.md)> | Promise used to return the top ability.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 16000100 | Calling GetCurrentTopAbility failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility().then((data: UIAbility) => { console.info('getCurrentTopAbility promise'); ability = data; }); ``` ### startAbility9+ startAbility(want: Want, callback: AsyncCallback\): void Starts an ability. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------------------------- | ---- | ------------------ | | want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes | **Want** parameter for starting the ability. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the ability is started, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000001 | The specified ability does not exist. | | 16000002 | Incorrect ability type. | | 16000004 | Failed to start the invisible ability. | | 16000005 | The specified process does not have the permission. | | 16000006 | Cross-user operations are not allowed. | | 16000008 | The crowdtesting application expires. | | 16000009 | An ability cannot be started or stopped in Wukong mode. | | 16000010 | The call with the continuation flag is forbidden. | | 16000011 | The context does not exist. | | 16000012 | The application is controlled. | | 16000013 | The application is controlled by EDM. | | 16000050 | Internal error. | | 16000053 | The ability is not on the top of the UI. | | 16000055 | Installation-free timed out. | | 16200001 | The caller has been released. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { Want } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let want: Want = { bundleName: 'bundleName', abilityName: 'abilityName' }; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.startAbility(want, (err: BusinessError, data: void) => { console.info('startAbility callback'); }); ``` ### startAbility9+ startAbility(want: Want): Promise\ Starts an ability. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | -------------------------------------- | ---- | --------------- | | want | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes | **Want** parameter for starting the ability.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000001 | The specified ability does not exist. | | 16000002 | Incorrect ability type. | | 16000004 | Failed to start the invisible ability. | | 16000005 | The specified process does not have the permission. | | 16000006 | Cross-user operations are not allowed. | | 16000008 | The crowdtesting application expires. | | 16000009 | An ability cannot be started or stopped in Wukong mode. | | 16000010 | The call with the continuation flag is forbidden. | | 16000011 | The context does not exist. | | 16000012 | The application is controlled. | | 16000013 | The application is controlled by EDM. | | 16000050 | Internal error. | | 16000053 | The ability is not on the top of the UI. | | 16000055 | Installation-free timed out. | | 16200001 | The caller has been released. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { Want } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let want: Want = { bundleName: 'bundleName', abilityName: 'abilityName' }; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.startAbility(want).then((data: void) => { console.info('startAbility promise'); }); ``` ### doAbilityForeground9+ doAbilityForeground(ability: UIAbility, callback: AsyncCallback\): void Schedules the lifecycle state of an ability to **Foreground**. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------- | ---- | ------------------------------------------------------- | | ability | UIAbility | Yes | Target ability. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the ability lifecycle state is changed to **Foreground**, **err** is **undefined**. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling DoAbilityForeground failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; abilityDelegator.doAbilityForeground(ability, (err: BusinessError) => { console.info("doAbilityForeground callback"); }); }); ``` ### doAbilityForeground9+ doAbilityForeground(ability: UIAbility): Promise\ Schedules the lifecycle state of an ability to **Foreground**. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | --------------- | | ability | UIAbility | Yes | Target ability.| **Return value** | Type | Description | | ----------------- | ------------------------------------------------------------ | | Promise\ | Promise that returns no value. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling DoAbilityForeground failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; abilityDelegator.doAbilityForeground(ability).then(() => { console.info("doAbilityForeground promise"); }); }); ``` ### doAbilityBackground9+ doAbilityBackground(ability: UIAbility, callback: AsyncCallback\): void Schedules the lifecycle state of an ability to **Background**. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------- | ---- | ------------------------------------------------------- | | ability | UIAbility | Yes | Target ability. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the ability lifecycle state is changed to **Background**, **err** is **undefined**. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling DoAbilityBackground failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; abilityDelegator.doAbilityBackground(ability, (err: BusinessError) => { console.info("doAbilityBackground callback"); }); }); ``` ### doAbilityBackground9+ doAbilityBackground(ability: UIAbility): Promise\ Schedules the lifecycle state of an ability to **Background**. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------- | ---- | --------------- | | ability | UIAbility | Yes | Target ability.| **Return value** | Type | Description | | ----------------- | ------------------------------------------------------------ | | Promise\ | Promise that returns no value. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling DoAbilityBackground failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let ability: UIAbility; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.getCurrentTopAbility((err: BusinessError, data: UIAbility) => { console.info('getCurrentTopAbility callback'); ability = data; abilityDelegator.doAbilityBackground(ability).then(() => { console.info("doAbilityBackground promise"); }); }); ``` ### printSync9+ printSync(msg: string): void Prints log information to the unit test console. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ---------- | | msg | string | Yes | Log string.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let msg = 'msg'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.printSync(msg); ``` ### print print(msg: string, callback: AsyncCallback\): void Prints log information to the unit test console. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ------------------ | | msg | string | Yes | Log string. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the log information is printed to the unit test console, **err** is **undefined**. Otherwise, **err** is an error object.| **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let msg = 'msg'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.print(msg, (err: BusinessError) => { console.info('print callback'); }); ``` ### print print(msg: string): Promise\ Prints log information to the unit test console. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ---------- | | msg | string | Yes | Log string.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ |Promise that returns no value.| **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let msg = 'msg'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.print(msg).then(() => { console.info('print promise'); }); ``` ### executeShellCommand executeShellCommand(cmd: string, callback: AsyncCallback\): void Executes a shell command. This API uses an asynchronous callback to return the result. Only the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------ | | cmd | string | Yes | Shell command string. | | callback | AsyncCallback\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Yes | Callback used to return the result. If the shell command is executed, **err** is **undefined** and **data** is the execution result obtained. Otherwise, **err** is an error object.| **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let cmd = 'cmd'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.executeShellCommand(cmd, (err: BusinessError, data: abilityDelegatorRegistry.ShellCmdResult) => { console.info('executeShellCommand callback'); }); ``` ### executeShellCommand executeShellCommand(cmd: string, timeoutSecs: number, callback: AsyncCallback\): void Executes a shell command with the timeout period specified. This API uses an asynchronous callback to return the result. Only the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------------------------------------------------------------ | ---- | ----------------------------- | | cmd | string | Yes | Shell command string. | | timeoutSecs | number | Yes | Command timeout period, in seconds.| | callback | AsyncCallback\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Yes | Callback used to return the result. If the shell command is executed, **err** is **undefined** and **data** is the execution result obtained. Otherwise, **err** is an error object. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let cmd = 'cmd'; let timeout = 100; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.executeShellCommand(cmd, timeout, (err: BusinessError, data: abilityDelegatorRegistry.ShellCmdResult) => { console.info('executeShellCommand callback'); }); ``` ### executeShellCommand executeShellCommand(cmd: string, timeoutSecs?: number): Promise\ Executes a shell command with the timeout period specified. This API uses a promise to return the result. Only the following shell commands are supported: aa, bm, cp, mkdir, rm, uinput, hilog, ppwd, echo, uitest, acm, hidumper, wukong, pkill, ps, and pidof. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------ | ---- | ----------------------------- | | cmd | string | Yes | Shell command string. | | timeoutSecs | number | No | Command timeout period, in seconds.| **Return value** | Type | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | | Promise\<[ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult)> | Promise used to return a [ShellCmdResult](js-apis-inner-application-shellCmdResult.md#shellcmdresult) object.| **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let cmd = 'cmd'; let timeout = 100; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.executeShellCommand(cmd, timeout).then((data) => { console.info('executeShellCommand promise'); }); ``` ### finishTest9+ finishTest(msg: string, code: number, callback: AsyncCallback\): void Finishes the test and prints log information to the unit test console. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ------------------ | | msg | string | Yes | Log string. | | code | number | Yes | Log code. | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the test finishes and the log information is printed to the unit test console, **err** is undefined. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling FinishTest failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let msg = 'msg'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.finishTest(msg, 0, (err: BusinessError) => { console.info('finishTest callback'); }); ``` ### finishTest9+ finishTest(msg: string, code: number): Promise\ Finishes the test and prints log information to the unit test console. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ---------- | | msg | string | Yes | Log string.| | code | number | Yes | Log code. | **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling FinishTest failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let msg = 'msg'; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.finishTest(msg, 0).then(() => { console.info('finishTest promise'); }); ``` ### addAbilityStageMonitor9+ addAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\): void Adds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the **AbilityStageMonitor** instance is added, **err** is undefined. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }, (err: BusinessError) => { console.info('addAbilityStageMonitor callback'); }); ``` ### addAbilityStageMonitor9+ addAbilityStageMonitor(monitor: AbilityStageMonitor): Promise\ Adds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }).then(() => { console.info('addAbilityStageMonitor promise'); }); ``` ### addAbilityStageMonitorSync10+ addAbilityStageMonitorSync(monitor: AbilityStageMonitor): void Adds an **AbilityStageMonitor** instance to monitor the lifecycle state changes of an ability stage. This API returns the result synchronously. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling AddAbilityStageMonitorSync failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityStageMonitorSync({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }); ``` ### removeAbilityStageMonitor9+ removeAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\): void Removes an **AbilityStageMonitor** instance from the application memory. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the **AbilityStageMonitor** instance is removed, **err** is undefined. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }, (err: BusinessError) => { console.info('removeAbilityStageMonitor callback'); }); ``` ### removeAbilityStageMonitor9+ removeAbilityStageMonitor(monitor: AbilityStageMonitor): Promise\ Removes an **AbilityStageMonitor** instance from the application memory. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise that returns no value.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }).then(() => { console.info('removeAbilityStageMonitor promise'); }); ``` ### removeAbilityStageMonitorSync10+ removeAbilityStageMonitorSync(monitor: AbilityStageMonitor): void Removes an **AbilityStageMonitor** instance from the application memory. This API returns the result synchronously. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling RemoveAbilityStageMonitorSync failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.removeAbilityStageMonitorSync({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }); ``` ### waitAbilityStageMonitor9+ waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback\): void Waits for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | -------- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is undefined and data is the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance obtained. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { AbilityStage } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }, (err: BusinessError, data: AbilityStage) => { console.info('waitAbilityStageMonitor callback'); }); ``` ### waitAbilityStageMonitor9+ waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise\ Waits for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses a promise to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| | timeout | number | No | Maximum waiting time, in milliseconds.| **Return value** | Type | Description | | -------------- | ------------------- | | Promise\ | Promise used to return the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { AbilityStage } from '@kit.AbilityKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }).then((data: AbilityStage) => { console.info('waitAbilityStageMonitor promise'); }); ``` ### waitAbilityStageMonitor9+ waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout: number, callback: AsyncCallback\): void Waits for an **AbilityStage** instance that matches the conditions set in an **AbilityStageMonitor** instance and returns the **AbilityStage** instance. This API uses an asynchronous callback to return the result. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | monitor | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) | Yes | [AbilityStageMonitor](../apis-ability-kit/js-apis-inner-application-abilityStageMonitor.md) instance.| | timeout | number | Yes | Maximum waiting time, in milliseconds.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is undefined and data is the [AbilityStage](../apis-ability-kit/js-apis-app-ability-abilityStage.md) instance obtained. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message| | ------- | -------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000100 | Calling WaitAbilityStageMonitor failed. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; import { AbilityStage } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; let timeout = 100; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.waitAbilityStageMonitor({ moduleName: 'moduleName', srcEntrance: 'srcEntrance', }, timeout, (err: BusinessError, data: AbilityStage) => { console.info('waitAbilityStageMonitor callback'); }); ``` ### setMockList11+ setMockList(mockList: Record\): void Sets a list of mock data. **Atomic service API**: This API can be used in atomic services since API version 11. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ------------------------------------------------------------ | | mockList | Record\ | Yes | Key-value object of the mock, where **key** is the target path to be replaced and **value** is the path of the mock implementation to be used for the replacement.| **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](../apis-ability-kit/errorcode-ability.md). | ID| Error Message | | -------- | --------------- | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. | | 16000050 | Internal error. | **Example** ```ts import { abilityDelegatorRegistry } from '@kit.TestKit'; let mockList: Record = { '@ohos.router': 'src/main/mock/ohos/router.mock', 'common.time': 'src/main/mock/common/time.mock', }; let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator; abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.setMockList(mockList); ```