1# @ohos.app.ability.abilityManager (AbilityManager)(系统接口) 2 3<!--Kit: Ability Kit--> 4<!--Subsystem: Ability--> 5<!--Owner: @duan-sizhao; @Luobniz21--> 6<!--Designer: @ccllee1--> 7<!--Tester: @lixueqing513--> 8<!--Adviser: @huipeizi--> 9 10AbilityManager模块提供获取、新增、修改Ability相关信息和运行状态信息的能力。 11 12> **说明:** 13> 14> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15> 本模块接口均为系统接口,三方应用不支持调用。 16 17## 导入模块 18 19```ts 20import { abilityManager } from '@kit.AbilityKit'; 21``` 22 23## UserStatus<sup>12+</sup> 24 25用户操作的断言调试结果,该类型为枚举。 26 27**系统接口**:该接口为系统接口。 28 29**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 30 31| 名称 | 值 | 说明 | 32| -------- | -------- | -------- | 33| ASSERT_TERMINATE | 0 | 表示用户点击终止的操作的断言调试结果。 | 34| ASSERT_CONTINUE | 1 | 表示用户点击继续的操作的断言调试结果。 | 35| ASSERT_RETRY | 2 | 表示用户点击重试的操作的断言调试结果。 | 36 37## updateConfiguration 38 39updateConfiguration(config: Configuration, callback: AsyncCallback\<void>): void 40 41通过传入修改的配置项来更新配置(callback形式)。 42 43**系统接口**:此接口为系统接口。 44 45**需要权限**:ohos.permission.UPDATE_CONFIGURATION 46 47**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 48 49**参数**: 50 51| 参数名 | 类型 | 必填 | 说明 | 52| --------- | ---------------------------------------- | ---- | -------------- | 53| config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | 54| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | 55 56**错误码**: 57 58以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 59 60| 错误码ID | 错误信息 | 61| ------- | -------- | 62| 201 | Permission denied. | 63| 202 | Not System App. Interface caller is not a system app. | 64| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 65| 16000050 | Internal error. | 66 67**示例**: 68 69```ts 70import { abilityManager, Configuration, ConfigurationConstant } from '@kit.AbilityKit'; 71import { BusinessError } from '@kit.BasicServicesKit'; 72 73const config: Configuration = { 74 language: 'Zh-Hans', // 简体中文 75 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 76 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 77 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' 78 displayId: 1, // 应用在Id为1的物理屏上显示 79 hasPointerDevice: true, // 指针类型设备已连接 80}; 81 82try { 83 abilityManager.updateConfiguration(config, (err: BusinessError) => { 84 if (err) { 85 console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); 86 } else { 87 console.info('updateConfiguration success.'); 88 } 89 }); 90} catch (paramError) { 91 let code: number = (paramError as BusinessError).code; 92 let message: string = (paramError as BusinessError).message; 93 console.error(`error.code: ${code}, error.message: ${message}`); 94} 95``` 96 97## updateConfiguration 98 99updateConfiguration(config: Configuration): Promise\<void> 100 101通过修改配置来更新配置(Promise形式)。 102 103**系统接口**:此接口为系统接口。 104 105**需要权限**:ohos.permission.UPDATE_CONFIGURATION 106 107**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 108 109**参数**: 110 111| 参数名 | 类型 | 必填 | 说明 | 112| --------- | ---------------------------------------- | ---- | -------------- | 113| config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | 114 115**返回值:** 116 117| 类型 | 说明 | 118| ---------------------------------------- | ------- | 119| Promise\<void> | 以Promise方式返回接口运行结果息,可进行错误处理或其他自定义处理。 | 120 121**错误码**: 122 123以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 124 125| 错误码ID | 错误信息 | 126| ------- | -------- | 127| 201 | Permission denied. | 128| 202 | Not System App. Interface caller is not a system app. | 129| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 130| 16000050 | Internal error. | 131 132**示例**: 133 134```ts 135import { abilityManager, Configuration, ConfigurationConstant } from '@kit.AbilityKit'; 136import { BusinessError } from '@kit.BasicServicesKit'; 137 138const config: Configuration = { 139 language: 'Zh-Hans', // 简体中文 140 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 141 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 142 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' 143 displayId: 1, // 应用在Id为1的物理屏上显示 144 hasPointerDevice: true, // 指针类型设备已连接 145}; 146 147try { 148 abilityManager.updateConfiguration(config).then(() => { 149 console.info('updateConfiguration success.'); 150 }).catch((err: BusinessError) => { 151 console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); 152 }); 153} catch (paramError) { 154 let code: number = (paramError as BusinessError).code; 155 let message: string = (paramError as BusinessError).message; 156 console.error(`error.code: ${code}, error.message: ${message}`); 157} 158``` 159 160## getAbilityRunningInfos 161 162getAbilityRunningInfos(callback: AsyncCallback\<Array\<AbilityRunningInfo>>): void 163 164获取UIAbility运行相关信息(callback形式)。 165 166**系统接口**:此接口为系统接口。 167 168**需要权限**:ohos.permission.GET_RUNNING_INFO 169 170**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 171 172**参数**: 173 174| 参数名 | 类型 | 必填 | 说明 | 175| --------- | ---------------------------------------- | ---- | -------------- | 176| callback | AsyncCallback\<Array\<[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)>> | 是 | 以回调方式返回接口运行结果及运行中的ability信息,可进行错误处理或其他自定义处理。 | 177 178**错误码**: 179 180以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 181 182| 错误码ID | 错误信息 | 183| ------- | -------- | 184| 202 | Not System App. Interface caller is not a system app. | 185| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 186| 16000050 | Internal error. | 187 188**示例**: 189 190```ts 191import { abilityManager } from '@kit.AbilityKit'; 192import { BusinessError } from '@kit.BasicServicesKit'; 193 194try { 195 abilityManager.getAbilityRunningInfos((err: BusinessError, data: Array<abilityManager.AbilityRunningInfo>) => { 196 if (err) { 197 console.error(`getAbilityRunningInfos fail, error: ${JSON.stringify(err)}`); 198 } else { 199 console.info(`getAbilityRunningInfos success, data: ${JSON.stringify(data)}`); 200 } 201 }); 202} catch (paramError) { 203 let code: number = (paramError as BusinessError).code; 204 let message: string = (paramError as BusinessError).message; 205 console.error(`error.code: ${code}, error.message: ${message}`); 206} 207``` 208 209## getExtensionRunningInfos 210 211getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\<Array\<ExtensionRunningInfo>>): void 212 213获取关于运行扩展能力的信息(callback形式)。 214 215**系统接口**:此接口为系统接口。 216 217**需要权限**:ohos.permission.GET_RUNNING_INFO 218 219**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 220 221**参数**: 222 223| 参数名 | 类型 | 必填 | 说明 | 224| --------- | ---------------------------------------- | ---- | -------------- | 225| upperLimit | number | 是 | 获取消息数量的最大限制,最大为2<sup>31</sup>-1。 | 226| callback | AsyncCallback\<Array\<[ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo-sys.md)>> | 是 | 以回调方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | 227 228**错误码**: 229 230以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 231 232| 错误码ID | 错误信息 | 233| ------- | -------- | 234| 202 | Not System App. Interface caller is not a system app. | 235| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 236| 16000050 | Internal error. | 237 238**示例**: 239 240```ts 241import { abilityManager } from '@kit.AbilityKit'; 242import { BusinessError } from '@kit.BasicServicesKit'; 243 244let upperLimit = 10; 245 246try { 247 abilityManager.getExtensionRunningInfos(upperLimit, (err: BusinessError, data: Array<abilityManager.ExtensionRunningInfo>) => { 248 if (err) { 249 console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); 250 } else { 251 console.info(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); 252 } 253 }); 254} catch (paramError) { 255 let code: number = (paramError as BusinessError).code; 256 let message: string = (paramError as BusinessError).message; 257 console.error(`error.code: ${code}, error.message: ${message}`); 258} 259``` 260 261## getExtensionRunningInfos 262 263getExtensionRunningInfos(upperLimit: number): Promise\<Array\<ExtensionRunningInfo>> 264 265获取关于运行扩展能力的信息(Promise形式)。 266 267**系统接口**:此接口为系统接口。 268 269**需要权限**:ohos.permission.GET_RUNNING_INFO 270 271**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 272 273**参数**: 274 275| 参数名 | 类型 | 必填 | 说明 | 276| --------- | ---------------------------------------- | ---- | -------------- | 277| upperLimit | number | 是 | 获取消息数量的最大限制,最大为2<sup>31</sup>-1。 | 278 279**返回值:** 280 281| 类型 | 说明 | 282| ---------------------------------------- | ------- | 283| Promise\<Array\<[ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo-sys.md)>> | 以Promise方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | 284 285**错误码**: 286 287以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 288 289| 错误码ID | 错误信息 | 290| ------- | -------- | 291| 202 | Not System App. Interface caller is not a system app. | 292| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 293| 16000050 | Internal error. | 294 295**示例**: 296 297```ts 298import { abilityManager } from '@kit.AbilityKit'; 299import { BusinessError } from '@kit.BasicServicesKit'; 300 301let upperLimit = 10; 302 303try { 304 abilityManager.getExtensionRunningInfos(upperLimit).then((data: Array<abilityManager.ExtensionRunningInfo>) => { 305 console.info(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); 306 }).catch((err: BusinessError) => { 307 console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); 308 }); 309} catch (paramError) { 310 let code: number = (paramError as BusinessError).code; 311 let message: string = (paramError as BusinessError).message; 312 console.error(`error.code: ${code}, error.message: ${message}`); 313} 314``` 315 316## getTopAbility 317 318getTopAbility(callback: AsyncCallback\<ElementName>): void 319 320获取窗口焦点的ability接口(callback形式)。 321 322**系统接口**:此接口为系统接口。 323 324**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 325 326**参数**: 327 328| 参数名 | 类型 | 必填 | 说明 | 329| --------- | ---------------------------------------- | ---- | -------------- | 330| callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | 是 | 以回调方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | 331 332**错误码**: 333 334以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 335 336| 错误码ID | 错误信息 | 337| ------- | -------- | 338| 202 | Not System App. Interface caller is not a system app. | 339| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 340| 16000050 | Internal error. | 341 342**示例**: 343 344```ts 345import { abilityManager } from '@kit.AbilityKit'; 346import { BusinessError } from '@kit.BasicServicesKit'; 347 348abilityManager.getTopAbility((err: BusinessError, data) => { 349 if (err) { 350 console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); 351 } else { 352 console.info(`getTopAbility success, data: ${JSON.stringify(data)}`); 353 } 354}); 355``` 356 357## getTopAbility 358 359getTopAbility(): Promise\<ElementName> 360 361获取窗口焦点的ability接口(Promise形式)。 362 363**系统接口**:此接口为系统接口。 364 365**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 366 367**返回值:** 368 369| 类型 | 说明 | 370| ---------------------------------------- | ------- | 371| Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| 以Promise方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | 372 373**错误码**: 374 375以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 376 377| 错误码ID | 错误信息 | 378| ------- | -------- | 379| 202 | Not System App. Interface caller is not a system app. | 380| 16000050 | Internal error. | 381 382**示例**: 383 384```ts 385import { abilityManager } from '@kit.AbilityKit'; 386import { BusinessError } from '@kit.BasicServicesKit'; 387 388abilityManager.getTopAbility().then((data) => { 389 console.info(`getTopAbility success, data: ${JSON.stringify(data)}`); 390}).catch((err: BusinessError) => { 391 console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); 392}); 393``` 394 395## acquireShareData<sup>10+</sup> 396 397acquireShareData(missionId: number, callback: AsyncCallback\<Record\<string, Object>>): void 398 399系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(callback形式)。 400 401**系统接口**:此接口为系统接口。 402 403**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 404 405**参数**: 406 407| 参数名 | 类型 | 必填 | 说明 | 408| --------- | ---------------------------------------- | ---- | -------------- | 409| missionId | number | 是 | 目标应用的missionId,最大为2<sup>31</sup>-1。 | 410| callback | AsyncCallback\<Record\<string, Object>> | 是 | 以回调方式返回接口运行结果及分享得到的数据,可进行错误处理或其他自定义处理。 | 411 412**错误码**: 413 414以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 415 416| 错误码ID | 错误信息 | 417| ------- | -------- | 418| 202 | Not System App. Interface caller is not a system app. | 419| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 420| 16000050 | Internal error. | 421 422**示例**: 423 424```ts 425import { abilityManager } from '@kit.AbilityKit'; 426import { BusinessError } from '@kit.BasicServicesKit'; 427 428try { 429 abilityManager.acquireShareData(1, (err: BusinessError, wantParam: Record<string, Object>) => { 430 if (err) { 431 console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); 432 } else { 433 console.info(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); 434 } 435 }); 436} catch (paramError) { 437 let code: number = (paramError as BusinessError).code; 438 let message: string = (paramError as BusinessError).message; 439 console.error(`error.code: ${code}, error.message: ${message}`); 440} 441``` 442 443## acquireShareData<sup>10+</sup> 444 445acquireShareData(missionId: number): Promise\<Record\<string, Object>> 446 447系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(Promise形式)。 448 449**系统接口**:此接口为系统接口。 450 451**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 452 453**参数**: 454 455| 参数名 | 类型 | 必填 | 说明 | 456| --------- | ---------------------------------------- | ---- | -------------- | 457| missionId | number | 是 | 目标应用的missionId,最大为2<sup>31</sup>-1。 | 458 459**返回值:** 460 461| 类型 | 说明 | 462| ---------------------------------------- | ------- | 463| Promise\<Record\<string, Object>>| 以Promise方式返回接口运行结果及分享数据,可进行错误处理或其他自定义处理。 | 464 465**错误码**: 466 467以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 468 469| 错误码ID | 错误信息 | 470| ------- | -------- | 471| 202 | Not System App. Interface caller is not a system app. | 472| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 473| 16000050 | Internal error. | 474 475**示例**: 476 477```ts 478import { abilityManager } from '@kit.AbilityKit'; 479import { BusinessError } from '@kit.BasicServicesKit'; 480 481try { 482 abilityManager.acquireShareData(1).then((wantParam: Record<string, Object>) => { 483 console.info(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); 484 }).catch((err: BusinessError) => { 485 console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); 486 }); 487} catch (paramError) { 488 let code: number = (paramError as BusinessError).code; 489 let message: string = (paramError as BusinessError).message; 490 console.error(`error.code: ${code}, error.message: ${message}`); 491} 492``` 493 494## notifySaveAsResult<sup>10+</sup> 495 496notifySaveAsResult(parameter: AbilityResult, requestCode: number, callback: AsyncCallback\<void>): void 497 498该接口仅供[DLP](../apis-data-protection-kit/js-apis-dlppermission.md)(Data Loss Prevention, 数据丢失防护)管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用callback异步回调。 499 500**模型约束**:此接口仅可在Stage模型下使用。 501 502**系统接口**:此接口为系统接口。 503 504**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 505 506**参数**: 507 508| 参数名 | 类型 | 必填 | 说明 | 509| --------- | ---------------------------------------- | ---- | -------------- | 510| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | 511| requestCode | number | 是 | DLP管理应用传入的请求代码。 | 512| callback | AsyncCallback<void\> | 是 | 回调函数。当另存为结果通知成功,err为undefined,否则为错误对象。 | 513 514**错误码**: 515 516以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 517 518| 错误码ID | 错误信息 | 519| ------- | -------- | 520| 201 | Permission denied. | 521| 202 | Not System App. Interface caller is not a system app. | 522| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 523| 16000050 | Internal error. | 524 525**示例**: 526 527```ts 528import { abilityManager, Want, common } from '@kit.AbilityKit'; 529import { BusinessError } from '@kit.BasicServicesKit'; 530 531let want: Want = { 532 bundleName: 'com.example.myapplication', 533 abilityName: 'EntryAbility' 534}; 535let resultCode = 100; 536// 返回给另存为行为发起方AbilityResult信息 537let abilityResult: common.AbilityResult = { 538 want, 539 resultCode 540}; 541let requestCode = 1; 542try { 543 abilityManager.notifySaveAsResult(abilityResult, requestCode, (err: BusinessError) => { 544 if (err && err.code != 0) { 545 console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); 546 } else { 547 console.info(`notifySaveAsResult success`); 548 } 549 }); 550} catch (paramError) { 551 let code: number = (paramError as BusinessError).code; 552 let message: string = (paramError as BusinessError).message; 553 console.error(`error.code: ${code}, error.message: ${message}`); 554} 555``` 556 557## notifySaveAsResult<sup>10+</sup> 558 559notifySaveAsResult(parameter: AbilityResult, requestCode: number): Promise\<void> 560 561该接口仅供[DLP](../apis-data-protection-kit/js-apis-dlppermission.md)(Data Loss Prevention, 数据丢失防护)管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用Promise异步回调。 562 563**模型约束**:此接口仅可在Stage模型下使用。 564 565**系统接口**:此接口为系统接口。 566 567**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 568 569**参数**: 570 571| 参数名 | 类型 | 必填 | 说明 | 572| --------- | ---------------------------------------- | ---- | -------------- | 573| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | 574| requestCode | number | 是 | DLP管理应用传入的请求代码。 | 575 576**返回值:** 577 578| 类型 | 说明 | 579| ---------------------------------------- | ------- | 580| Promise<void\>| Promise对象。无返回结果的Promise对象。 | 581 582**错误码**: 583 584以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 585 586| 错误码ID | 错误信息 | 587| ------- | -------- | 588| 201 | Permission denied. | 589| 202 | Not System App. Interface caller is not a system app. | 590| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 591| 16000050 | Internal error. | 592 593**示例**: 594 595```ts 596import { abilityManager, Want, common } from '@kit.AbilityKit'; 597import { BusinessError } from '@kit.BasicServicesKit'; 598 599let want: Want = { 600 bundleName: 'com.example.myapplication', 601 abilityName: 'EntryAbility' 602}; 603let resultCode = 100; 604// 返回给另存为行为发起方AbilityResult信息 605let abilityResult: common.AbilityResult = { 606 want, 607 resultCode 608}; 609let requestCode = 1; 610try { 611 abilityManager.notifySaveAsResult(abilityResult, requestCode).then(() => { 612 console.info(`notifySaveAsResult success`); 613 }).catch((err: BusinessError) => { 614 console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); 615 }); 616} catch (paramError) { 617 let code: number = (paramError as BusinessError).code; 618 let message: string = (paramError as BusinessError).message; 619 console.error(`error.code: ${code}, error.message: ${message}`); 620} 621``` 622 623## abilityManager.on('abilityForegroundState')<sup>11+</sup> 624 625on(type: 'abilityForegroundState', observer: AbilityForegroundStateObserver): void 626 627注册Ability的启动和退出的观测器。 628 629**系统接口**:此接口为系统接口。 630 631**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 632 633**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 634 635**参数:** 636 637| 参数名 | 类型 | 必填 | 说明 | 638| -------- | -------- | -------- | -------- | 639| type | string | 是 | 调用接口类型,固定填'abilityForegroundState'字符串。 | 640| observer | [AbilityForegroundStateObserver](js-apis-inner-application-abilityForegroundStateObserver-sys.md) | 是 | Ability状态观测器,用于观测Ability的启动和退出。 | 641 642**错误码**: 643 644以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 645 646| 错误码ID | 错误信息 | 647| ------- | -------- | 648| 201 | Permission denied. | 649| 202 | Not System App. Interface caller is not a system app. | 650| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 651| 16000050 | Internal error. | 652 653**示例:** 654 655```ts 656import { abilityManager } from '@kit.AbilityKit'; 657import { BusinessError } from '@kit.BasicServicesKit'; 658 659let observer: abilityManager.AbilityForegroundStateObserver = { 660 onAbilityStateChanged(abilityStateData) { 661 console.info(`onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 662 }, 663}; 664try { 665 abilityManager.on('abilityForegroundState', observer); 666} catch (paramError) { 667 let code = (paramError as BusinessError).code; 668 let message = (paramError as BusinessError).message; 669 console.error(`error: ${code}, ${message} `); 670} 671``` 672 673## abilityManager.off('abilityForegroundState')<sup>11+</sup> 674 675off(type: 'abilityForegroundState', observer?: AbilityForegroundStateObserver): void 676 677取消注册Ability启动和退出的观测器。 678 679**系统接口**:此接口为系统接口。 680 681**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 682 683**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 684 685**参数:** 686 687| 参数名 | 类型 | 必填 | 说明 | 688| -------- | -------- | -------- | -------- | 689| type | string | 是 | 调用接口类型,固定填'abilityForegroundState'字符串。 | 690| observer | [AbilityForegroundStateObserver](js-apis-inner-application-abilityForegroundStateObserver-sys.md) | 否 | Ability状态观测器,用于观测Ability的启动和退出。如果未配置该参数,则取消当前应用注册的所有observer。如果配置了该参数,则取消该observer。 | 691 692**错误码**: 693 694以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 695 696| 错误码ID | 错误信息 | 697| ------- | -------- | 698| 201 | Permission denied. | 699| 202 | Not System App. Interface caller is not a system app. | 700| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 701| 16000050 | Internal error. | 702 703**示例:** 704 705```ts 706import { abilityManager } from '@kit.AbilityKit'; 707import { BusinessError } from '@kit.BasicServicesKit'; 708 709let observer_: abilityManager.AbilityForegroundStateObserver | undefined; 710// 1.注册应用启动和退出的监听器 711let observer: abilityManager.AbilityForegroundStateObserver = { 712 onAbilityStateChanged(abilityStateData: abilityManager.AbilityStateData) { 713 console.info(`onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 714 }, 715}; 716try { 717 abilityManager.on('abilityForegroundState', observer); 718 observer_ = observer; 719} catch (paramError) { 720 let code = (paramError as BusinessError).code; 721 let message = (paramError as BusinessError).message; 722 console.error(`error: ${code}, ${message} `); 723} 724 725// 2.注销监听器 726try { 727 abilityManager.off('abilityForegroundState', observer_); 728} catch (paramError) { 729 let code = (paramError as BusinessError).code; 730 let message = (paramError as BusinessError).message; 731 console.error(`error: ${code}, ${message} `); 732} 733``` 734 735## abilityManager.getForegroundUIAbilities<sup>11+</sup> 736 737getForegroundUIAbilities(callback: AsyncCallback\<Array\<AbilityStateData>>): void 738 739获取前台正在运行的应用Ability的信息。 740 741**系统接口**:此接口为系统接口。 742 743**需要权限**:ohos.permission.GET_RUNNING_INFO 744 745**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 746 747**参数:** 748 749 | 参数名 | 类型 | 必填 | 说明 | 750 | -------- | -------- | -------- | -------- | 751 | callback | AsyncCallback\<Array\<[AbilityStateData](js-apis-inner-application-abilityStateData.md)>> | 是 |以回调方式返回接口运行结果及有关前台Ability的信息,可进行错误处理或其他自定义处理。 | 752 753**错误码**: 754 755以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 756 757| 错误码ID | 错误信息 | 758| ------- | -------- | 759| 201 | Permission denied. | 760| 202 | Not System App. Interface caller is not a system app. | 761| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 762| 16000050 | Internal error. | 763 764**示例:** 765 766```ts 767import { abilityManager } from '@kit.AbilityKit'; 768import { BusinessError } from '@kit.BasicServicesKit'; 769 770abilityManager.getForegroundUIAbilities((err: BusinessError, data: Array<abilityManager.AbilityStateData>) => { 771 if (err) { 772 console.error(`Get foreground ui abilities failed, error: ${JSON.stringify(err)}`); 773 } else { 774 console.info(`Get foreground ui abilities data is: ${JSON.stringify(data)}`); 775 } 776}); 777``` 778 779## abilityManager.getForegroundUIAbilities<sup>11+</sup> 780 781getForegroundUIAbilities(): Promise\<Array\<AbilityStateData>> 782 783获取前台正在运行的应用Ability的信息。 784 785**系统接口**:此接口为系统接口。 786 787**需要权限**:ohos.permission.GET_RUNNING_INFO 788 789**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 790 791**返回值:** 792 793| 类型 | 说明 | 794| -------- | -------- | 795| Promise\<Array\<[AbilityStateData](js-apis-inner-application-abilityStateData.md)>> | 以Promise方式返回接口运行结果及有关前台Ability的信息,可进行错误处理或其他自定义处理。| 796 797**错误码**: 798 799以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 800 801| 错误码ID | 错误信息 | 802| ------- | -------- | 803| 201 | Permission denied. | 804| 202 | Not System App. Interface caller is not a system app. | 805| 16000050 | Internal error. | 806 807**示例:** 808 809```ts 810import { abilityManager } from '@kit.AbilityKit'; 811import { BusinessError } from '@kit.BasicServicesKit'; 812 813abilityManager.getForegroundUIAbilities().then((data: Array<abilityManager.AbilityStateData>) => { 814 console.info(`Get foreground ui abilities data is: ${JSON.stringify(data)}`); 815}).catch((error: BusinessError) => { 816 console.error(`Get foreground ui abilities failed, error: ${JSON.stringify(error)}`); 817}); 818``` 819 820## abilityManager.notifyDebugAssertResult<sup>12+</sup> 821 822notifyDebugAssertResult(sessionId: string, status: UserStatus): Promise\<void> 823 824将断言调试结果通知应用程序。使用Promise异步回调。 825 826**系统接口**:此接口为系统接口。 827 828**需要权限**:ohos.permission.NOTIFY_DEBUG_ASSERT_RESULT 829 830**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 831 832**参数**: 833 834| 参数名 | 类型 | 必填 | 说明 | 835| ------- | -------- | -------- | -------- | 836| sessionId | string | 是 | 指示AssertFault的请求ID。 | 837| status | [UserStatus](#userstatus12) | 是 | 用户的操作状态。 | 838 839**返回值:** 840 841| 类型 | 说明 | 842| -------- | -------- | 843| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 844 845**错误码**: 846 847以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 848 849| 错误码ID | 错误信息 | 850| ------- | -------- | 851| 201 | Permission denied. | 852| 202 | Not System App. Interface caller is not a system app. | 853| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 854| 16000050 | Internal error. | 855 856**示例:** 857 858```ts 859import { abilityManager, UIExtensionAbility, wantConstant, Want, UIExtensionContentSession } from '@kit.AbilityKit'; 860import { BusinessError } from '@kit.BasicServicesKit'; 861 862export default class UiExtAbility extends UIExtensionAbility { 863 onSessionCreate(want: Want, session: UIExtensionContentSession): void { 864 let sessionId: string = ''; 865 if (want.parameters) { 866 sessionId = want.parameters[wantConstant.Params.ASSERT_FAULT_SESSION_ID] as string; 867 } 868 let status = abilityManager.UserStatus.ASSERT_TERMINATE; 869 abilityManager.notifyDebugAssertResult(sessionId, status).then(() => { 870 console.info('notifyDebugAssertResult success.'); 871 }).catch((err: BusinessError) => { 872 console.error(`notifyDebugAssertResult failed, error: ${JSON.stringify(err)}`); 873 }); 874 } 875} 876``` 877 878## abilityManager.isEmbeddedOpenAllowed<sup>12+</sup> 879 880isEmbeddedOpenAllowed(context: Context, appId: string): Promise\<boolean> 881 882判断是否允许嵌入式拉起[EmbeddableUIAbility](js-apis-app-ability-embeddableUIAbility.md)。使用Promise异步回调。 883 884**系统接口**:此接口为系统接口。 885 886**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 887 888**参数**: 889 890| 参数名 | 类型 | 必填 | 说明 | 891| ------- | -------- | -------- | -------- | 892| context | [Context](js-apis-inner-application-context.md) | 是 | 嵌入式拉起EmbeddableUIAbility的调用方Context。 | 893| appId | string | 是 | 应用的唯一标识,由云端统一分配。 | 894 895**返回值:** 896 897| 类型 | 说明 | 898| -------- | -------- | 899| Promise\<boolean> | Promise对象。返回true表示允许嵌入式启动,返回false表示不允许嵌入式启动。 | 900 901**错误码**: 902 903以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 904 905| 错误码ID | 错误信息 | 906| ------- | -------- | 907| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 908| 16000050 | Internal error. | 909 910**示例:** 911 912```ts 913import { abilityManager, UIAbility } from '@kit.AbilityKit'; 914import { BusinessError } from '@kit.BasicServicesKit'; 915 916export default class EntryAbility extends UIAbility { 917 onForeground() { 918 let appId: string = '6918661953712445909'; 919 try { 920 abilityManager.isEmbeddedOpenAllowed(this.context, appId).then((data) => { 921 console.info(`isEmbeddedOpenAllowed data: ${JSON.stringify(data)}`); 922 }).catch((err: BusinessError) => { 923 console.error(`isEmbeddedOpenAllowed failed, code is ${err.code}, message is ${err.message}`); 924 }); 925 } catch (err) { 926 // 处理入参错误异常 927 console.error(`param is invalid, code is ${err.code}, message is ${err.message}`); 928 } 929 } 930} 931``` 932 933## abilityManager.setResidentProcessEnabled<sup>12+</sup> 934 935setResidentProcessEnabled(bundleName: string, enable: boolean): Promise\<void> 936 937常驻进程支持按需启停。 938 939**系统接口**:此接口为系统接口。 940 941**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 942 943**参数**: 944 945| 参数名 | 类型 | 必填 | 说明 | 946| ------- | -------- | -------- | -------- | 947| bundleName | string | 是 | 常驻进程的包名。 | 948| enable | boolean | 是 | 常驻进程的使能状态。 true:表示该进程为常驻进程。 false:表示该进程为普通进程,不会进行保活。| 949 950**返回值:** 951 952| 类型 | 说明 | 953| -------- | -------- | 954| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 955 956**错误码**: 957 958以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 959 960| 错误码ID | 错误信息 | 961| ------- | -------- | 962| 202 | Not a system application. | 963| 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 | 964| 16000050 | Internal error. | 965| 16200006 | The caller application can only set the resident status of the configured process. | 966 967**示例:** 968 969```ts 970import { abilityManager } from '@kit.AbilityKit'; 971import { BusinessError } from '@kit.BasicServicesKit'; 972 973try { 974 let residentProcessBundleName: string = 'com.xxx.xxxxxx'; 975 let enable: boolean = false; 976 abilityManager.setResidentProcessEnabled(residentProcessBundleName, enable) 977 .then(() => { 978 console.info('setResidentProcessEnabled success.'); 979 }) 980 .catch((err: BusinessError) => { 981 console.error(`setResidentProcessEnabled fail, err: ${JSON.stringify(err)}`); 982 }); 983} catch (err) { 984 let code = (err as BusinessError).code; 985 let message = (err as BusinessError).message; 986 console.error(`setResidentProcessEnabled failed, code is ${code}, message is ${message}`); 987} 988``` 989 990## AtomicServiceStartupRule<sup>18+</sup> 991 992嵌入式拉起原子化服务的规则。 993 994**系统接口**:该接口为系统接口。 995 996**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 997 998| 名称 | 类型 | 只读 | 可选 | 说明 | 999| -------- | ---------| ---- | ---- | --------- | 1000| isOpenAllowed | boolean | 否 | 否 | 是否允许拉起原子化服务。true表示允许拉起原子化服务,false表示不允许拉起原子化服务。 | 1001| isEmbeddedAllowed | boolean | 否 | 否 | 是否允许嵌入式拉起原子化服务。true表示允许嵌入式拉起原子化服务,false表示不允许嵌入式拉起原子化服务。 | 1002 1003## abilityManager.queryAtomicServiceStartupRule<sup>18+</sup> 1004 1005queryAtomicServiceStartupRule(context: Context, appId: string): Promise\<AtomicServiceStartupRule> 1006 1007查询嵌入式拉起[EmbeddableUIAbility](js-apis-app-ability-embeddableUIAbility.md)的规则。使用Promise异步回调。 1008 1009**系统接口**:此接口为系统接口。 1010 1011**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 1012 1013**设备行为差异**:该接口仅在Phone、Tablet和TV设备中可正常调用,在其他设备中返回801错误码。 1014 1015**参数**: 1016 1017| 参数名 | 类型 | 必填 | 说明 | 1018| ------- | -------- | -------- | -------- | 1019| context | [Context](js-apis-inner-application-context.md) | 是 | 嵌入式拉起EmbeddableUIAbility的调用方Context。<br>**说明**:目前仅支持[UIAbilityContext](js-apis-inner-application-uiAbilityContext.md)。 | 1020| appId | string | 是 | 应用的唯一标识,由云端统一分配。 | 1021 1022**返回值:** 1023 1024| 类型 | 说明 | 1025| -------- | -------- | 1026| Promise\<[AtomicServiceStartupRule](#atomicservicestartuprule18)> | Promise对象。返回嵌入式拉起原子化服务的规则。 | 1027 1028**错误码**: 1029 1030以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 1031 1032| 错误码ID | 错误信息 | 1033| ------- | -------- | 1034| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1035| 801 | Capability not support. | 1036| 16000050 | Internal error. | 1037 1038**示例:** 1039 1040```ts 1041import { abilityManager, UIAbility } from '@kit.AbilityKit'; 1042import { BusinessError } from '@kit.BasicServicesKit'; 1043 1044export default class EntryAbility extends UIAbility { 1045 onForeground() { 1046 let appId: string = '6918661953712445909'; 1047 try { 1048 abilityManager.queryAtomicServiceStartupRule(this.context, appId).then((data: abilityManager.AtomicServiceStartupRule) => { 1049 console.info(`queryAtomicServiceStartupRule data: ${JSON.stringify(data)}`); 1050 }).catch((err: BusinessError) => { 1051 console.error(`queryAtomicServiceStartupRule failed, code is ${err.code}, message is ${err.message}`); 1052 }); 1053 } catch (err) { 1054 // 处理入参错误异常 1055 console.error(`param is invalid, code is ${err.code}, message is ${err.message}`); 1056 } 1057 } 1058} 1059``` 1060 1061## ExtensionRunningInfo 1062 1063type ExtensionRunningInfo = _ExtensionRunningInfo 1064 1065ExtensionRunningInfo二级模块。 1066 1067**系统接口**:此接口为系统接口。 1068 1069**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 1070 1071| 类型 | 说明 | 1072| --- | --- | 1073| [_ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo-sys.md) | ExtensionRunningInfo二级模块,提供Extension运行的相关信息。 | 1074 1075## AbilityForegroundStateObserver<sup>11+</sup> 1076 1077type AbilityForegroundStateObserver = _AbilityForegroundStateObserver.default 1078 1079AbilityForegroundStateObserver二级模块。 1080 1081**系统接口**:此接口为系统接口。 1082 1083**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 1084 1085| 类型 | 说明 | 1086| --- | --- | 1087| [_AbilityForegroundStateObserver.default](js-apis-inner-application-abilityForegroundStateObserver-sys.md) | AbilityForegroundStateObserver二级模块,用于定义应用前后台状态监听。 | 1088