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