# @ohos.app.ability.abilityManager (AbilityManager)(系统接口) AbilityManager模块提供获取、新增、修改Ability相关信息和运行状态信息的能力。 > **说明:** > > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块接口均为系统接口,三方应用不支持调用。 ## 导入模块 ```ts import { abilityManager } from '@kit.AbilityKit'; ``` ## UserStatus12+ 用户操作的断言调试结果,该类型为枚举。 **系统接口**:该接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | 名称 | 值 | 说明 | | -------- | -------- | -------- | | ASSERT_TERMINATE | 0 | 表示用户点击终止的操作的断言调试结果。 | | ASSERT_CONTINUE | 1 | 表示用户点击继续的操作的断言调试结果。 | | ASSERT_RETRY | 2 | 表示用户点击重试的操作的断言调试结果。 | ## updateConfiguration updateConfiguration(config: Configuration, callback: AsyncCallback\): void 通过传入修改的配置项来更新配置(callback形式)。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager, Configuration, ConfigurationConstant } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; const config: Configuration = { language: 'Zh-Hans', // 简体中文 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' displayId: 1, // 应用在Id为1的物理屏上显示 hasPointerDevice: true, // 指针类型设备已连接 }; try { abilityManager.updateConfiguration(config, (err: BusinessError) => { if (err) { console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); } else { console.log('updateConfiguration success.'); } }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## updateConfiguration updateConfiguration(config: Configuration): Promise\ 通过修改配置来更新配置(Promise形式)。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.UPDATE_CONFIGURATION **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | **返回值:** | 类型 | 说明 | | ---------------------------------------- | ------- | | Promise\ | 以Promise方式返回接口运行结果息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager, Configuration, ConfigurationConstant } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit';; const config: Configuration = { language: 'Zh-Hans', // 简体中文 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' displayId: 1, // 应用在Id为1的物理屏上显示 hasPointerDevice: true, // 指针类型设备已连接 }; try { abilityManager.updateConfiguration(config).then(() => { console.log('updateConfiguration success.'); }).catch((err: BusinessError) => { console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## getAbilityRunningInfos getAbilityRunningInfos(callback: AsyncCallback\>): void 获取UIAbility运行相关信息(callback形式)。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及运行中的ability信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { abilityManager.getAbilityRunningInfos((err: BusinessError, data: Array) => { if (err) { console.error(`getAbilityRunningInfos fail, error: ${JSON.stringify(err)}`); } else { console.log(`getAbilityRunningInfos success, data: ${JSON.stringify(data)}`); } }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## getExtensionRunningInfos getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\>): void 获取关于运行扩展能力的信息(callback形式)。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | upperLimit | number | 是 | 获取消息数量的最大限制,最大为231-1。 | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let upperLimit = 10; try { abilityManager.getExtensionRunningInfos(upperLimit, (err: BusinessError, data: Array) => { if (err) { console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); } else { console.log(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); } }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## getExtensionRunningInfos getExtensionRunningInfos(upperLimit: number): Promise\> 获取关于运行扩展能力的信息(Promise形式)。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | upperLimit | number | 是 | 获取消息数量的最大限制,最大为231-1。 | **返回值:** | 类型 | 说明 | | ---------------------------------------- | ------- | | Promise\> | 以Promise方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let upperLimit = 10; try { abilityManager.getExtensionRunningInfos(upperLimit).then((data: Array) => { console.log(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); }).catch((err: BusinessError) => { console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## getTopAbility getTopAbility(callback: AsyncCallback\): void 获取窗口焦点的ability接口(callback形式)。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | 是 | 以回调方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; abilityManager.getTopAbility((err: BusinessError, data) => { if (err) { console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); } else { console.log(`getTopAbility success, data: ${JSON.stringify(data)}`); } }); ``` ## getTopAbility getTopAbility(): Promise\ 获取窗口焦点的ability接口(Promise形式)。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | ---------------------------------------- | ------- | | Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| 以Promise方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; abilityManager.getTopAbility().then((data) => { console.log(`getTopAbility success, data: ${JSON.stringify(data)}`); }).catch((err: BusinessError) => { console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); }); ``` ## acquireShareData10+ acquireShareData(missionId: number, callback: AsyncCallback\>): void 系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(callback形式)。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | missionId | number | 是 | 目标应用的missionId,最大为231-1。 | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及分享得到的数据,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { abilityManager.acquireShareData(1, (err: BusinessError, wantParam: Record) => { if (err) { console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); } else { console.log(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); } }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## acquireShareData10+ acquireShareData(missionId: number): Promise\> 系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(Promise形式)。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | missionId | number | 是 | 目标应用的missionId,最大为231-1。 | **返回值:** | 类型 | 说明 | | ---------------------------------------- | ------- | | Promise\>| 以Promise方式返回接口运行结果及分享数据,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { abilityManager.acquireShareData(1).then((wantParam: Record) => { console.log(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); }).catch((err: BusinessError) => { console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## notifySaveAsResult10+ notifySaveAsResult(parameter: AbilityResult, requestCode: number, callback: AsyncCallback\): void 该接口仅供[DLP](../apis-data-protection-kit/js-apis-dlppermission.md)(Data Loss Prevention, 数据丢失防护)管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用callback异步回调。 **模型约束**:此接口仅可在Stage模型下使用。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | | requestCode | number | 是 | DLP管理应用传入的请求代码。 | | callback | AsyncCallback | 是 | 回调函数。当另存为结果通知成功,err为undefined,否则为错误对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager, Want, common } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let want: Want = { bundleName: 'com.example.myapplication', abilityName: 'EntryAbility' }; let resultCode = 100; // 返回给另存为行为发起方AbilityResult信息 let abilityResult: common.AbilityResult = { want, resultCode }; let requestCode = 1; try { abilityManager.notifySaveAsResult(abilityResult, requestCode, (err: BusinessError) => { if (err && err.code != 0) { console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); } else { console.log(`notifySaveAsResult success`); } }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## notifySaveAsResult10+ notifySaveAsResult(parameter: AbilityResult, requestCode: number): Promise\ 该接口仅供[DLP](../apis-data-protection-kit/js-apis-dlppermission.md)(Data Loss Prevention, 数据丢失防护)管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用Promise异步回调。 **模型约束**:此接口仅可在Stage模型下使用。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | --------- | ---------------------------------------- | ---- | -------------- | | parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | | requestCode | number | 是 | DLP管理应用传入的请求代码。 | **返回值:** | 类型 | 说明 | | ---------------------------------------- | ------- | | Promise| Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例**: ```ts import { abilityManager, Want, common } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let want: Want = { bundleName: 'com.example.myapplication', abilityName: 'EntryAbility' }; let resultCode = 100; // 返回给另存为行为发起方AbilityResult信息 let abilityResult: common.AbilityResult = { want, resultCode }; let requestCode = 1; try { abilityManager.notifySaveAsResult(abilityResult, requestCode).then(() => { console.log(`notifySaveAsResult success`); }).catch((err: BusinessError) => { console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); }); } catch (paramError) { let code: number = (paramError as BusinessError).code; let message: string = (paramError as BusinessError).message; console.error(`error.code: ${code}, error.message: ${message}`); } ``` ## abilityManager.on('abilityForegroundState')11+ on(type: 'abilityForegroundState', observer: AbilityForegroundStateObserver): void 注册Ability的启动和退出的观测器。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 调用接口类型,固定填'abilityForegroundState'字符串。 | | observer | [AbilityForegroundStateObserver](js-apis-inner-application-abilityForegroundStateObserver-sys) | 是 | Ability状态观测器,用于观测Ability的启动和退出。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let observer: abilityManager.AbilityForegroundStateObserver = { onAbilityStateChanged(abilityStateData) { console.log(`onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); }, }; try { abilityManager.on('abilityForegroundState', observer); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`error: ${code}, ${message} `); } ``` ## abilityManager.off('abilityForegroundState')11+ off(type: 'abilityForegroundState', observer?: AbilityForegroundStateObserver): void 取消注册Ability启动和退出的观测器。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.RUNNING_STATE_OBSERVER **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | type | string | 是 | 调用接口类型,固定填'abilityForegroundState'字符串。 | | observer | [AbilityForegroundStateObserver](js-apis-inner-application-abilityForegroundStateObserver-sys) | 否 | Ability状态观测器,用于观测Ability的启动和退出。如果未配置该参数,则取消当前应用注册的所有observer。如果配置了该参数,则取消该observer。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; let observer_: abilityManager.AbilityForegroundStateObserver | undefined; // 1.注册应用启动和退出的监听器 let observer: abilityManager.AbilityForegroundStateObserver = { onAbilityStateChanged(abilityStateData: abilityManager.AbilityStateData) { console.log(`onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); }, }; try { abilityManager.on('abilityForegroundState', observer); observer_ = observer; } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`error: ${code}, ${message} `); } // 2.注销监听器 try { abilityManager.off('abilityForegroundState', observer_); } catch (paramError) { let code = (paramError as BusinessError).code; let message = (paramError as BusinessError).message; console.error(`error: ${code}, ${message} `); } ``` ## abilityManager.getForegroundUIAbilities11+ getForegroundUIAbilities(callback: AsyncCallback\>): void 获取前台正在运行的应用Ability的信息。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback\> | 是 |以回调方式返回接口运行结果及有关前台Ability的信息,可进行错误处理或其他自定义处理。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; abilityManager.getForegroundUIAbilities((err: BusinessError, data: Array) => { if (err) { console.error(`Get foreground ui abilities failed, error: ${JSON.stringify(err)}`); } else { console.log(`Get foreground ui abilities data is: ${JSON.stringify(data)}`); } }); ``` ## abilityManager.getForegroundUIAbilities11+ getForegroundUIAbilities(): Promise\> 获取前台正在运行的应用Ability的信息。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.GET_RUNNING_INFO **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\> | 以Promise方式返回接口运行结果及有关前台Ability的信息,可进行错误处理或其他自定义处理。| **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; abilityManager.getForegroundUIAbilities().then((data: Array) => { console.log(`Get foreground ui abilities data is: ${JSON.stringify(data)}`); }).catch((error: BusinessError) => { console.error(`Get foreground ui abilities failed, error: ${JSON.stringify(error)}`); }); ``` ## abilityManager.notifyDebugAssertResult12+ notifyDebugAssertResult(sessionId: string, status: UserStatus): Promise\ 将断言调试结果通知应用程序。使用Promise异步回调。 **系统接口**:此接口为系统接口。 **需要权限**:ohos.permission.NOTIFY_DEBUG_ASSERT_RESULT **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | ------- | -------- | -------- | -------- | | sessionId | string | 是 | 指示AssertFault的请求ID。 | | status | [UserStatus](#userstatus12) | 是 | 用户的操作状态。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 201 | Permission denied. | | 202 | Not System App. Interface caller is not a system app. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager, UIExtensionAbility, wantConstant, Want, UIExtensionContentSession } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; export default class UiExtAbility extends UIExtensionAbility { onSessionCreate(want: Want, session: UIExtensionContentSession): void { let sessionId: string = ''; if (want.parameters) { sessionId = want.parameters[wantConstant.Params.ASSERT_FAULT_SESSION_ID] as string; } let status = abilityManager.UserStatus.ASSERT_TERMINATE; abilityManager.notifyDebugAssertResult(sessionId, status).then(() => { console.log('notifyDebugAssertResult success.'); }).catch((err: BusinessError) => { console.error(`notifyDebugAssertResult failed, error: ${JSON.stringify(err)}`); }); } } ``` ## abilityManager.isEmbeddedOpenAllowed12 isEmbeddedOpenAllowed(context: Context, appId: string): Promise\ 判断是否允许嵌入式拉起[EmbeddableUIAbility](js-apis-app-ability-embeddableUIAbility.md)。使用Promise异步回调。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | ------- | -------- | -------- | -------- | | context | [Context](js-apis-inner-application-context.md) | 是 | 嵌入式拉起EmbeddableUIAbility的调用方Context。 | | appId | string | 是 | 应用的唯一标识,由云端统一分配。 | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。返回true表示允许嵌入式启动,返回false表示不允许嵌入式启动。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | | 16000050 | Internal error. | **示例:** ```ts import { abilityManager, UIAbility } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; export default class EntryAbility extends UIAbility { onForeground() { let appId: string = '6918661953712445909'; try { abilityManager.isEmbeddedOpenAllowed(this.context, appId).then((data) => { console.info(`isEmbeddedOpenAllowed data: ${JSON.stringify(data)}`); }).catch((err: BusinessError) => { console.error(`isEmbeddedOpenAllowed failed, code is ${err.code}, message is ${err.message}`); }); } catch (err) { // 处理入参错误异常 console.error(`param is invalid, code is ${err.code}, message is ${err.message}`); } } } ``` ## abilityManager.setResidentProcessEnabled12+ setResidentProcessEnabled(bundleName: string, enable: boolean): Promise\ 常驻进程支持按需启停。 **系统接口**:此接口为系统接口。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数**: | 参数名 | 类型 | 必填 | 说明 | | ------- | -------- | -------- | -------- | | bundleName | string | 是 | 常驻进程的包名。 | | enable | boolean | 是 | 常驻进程的使能状态。 true:表示该进程为常驻进程。 false:表示该进程为普通进程,不会进行保活。| **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise\ | Promise对象。无返回结果的Promise对象。 | **错误码**: 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 | 错误码ID | 错误信息 | | ------- | -------- | | 202 | Not a system application. | | 401 | Parameter error. Possible cause: 1.Non empty package name needs to be provided, 2.The second parameter needs to provide a Boolean type setting value | | 16000050 | Internal error. | | 16200006 | The caller application can only set the resident status of the configured process | **示例:** ```ts import { abilityManager } from '@kit.AbilityKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let residentProcessBundleName: string = 'com.xxx.xxxxxx'; let enable: boolean = false; abilityManager.setResidentProcessEnabled(residentProcessBundleName, enable) .then(() => { console.log('setResidentProcessEnabled success.'); }) .catch((err: BusinessError) => { console.error(`setResidentProcessEnabled fail, err: ${JSON.stringify(err)}`); }); } catch (err) { let code = (err as BusinessError).code; let message = (err as BusinessError).message; console.error(`setResidentProcessEnabled failed, code is ${code}, message is ${message}`); } ```