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 '@ohos.app.ability.abilityManager'; 14``` 15 16## AbilityState 17 18Ability的状态,该类型为枚举,可配合[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)返回Ability的状态。 19 20**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 21 22**系统API**: 此枚举类型为系统接口内部定义,三方应用不支持调用。 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## updateConfiguration 34 35updateConfiguration(config: Configuration, callback: AsyncCallback\<void>): void 36 37通过传入修改的配置项来更新配置(callback形式)。 38 39**需要权限**: ohos.permission.UPDATE_CONFIGURATION 40 41**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 42 43**参数**: 44 45| 参数名 | 类型 | 必填 | 说明 | 46| --------- | ---------------------------------------- | ---- | -------------- | 47| config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | 48| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | 49 50**错误码**: 51 52| 错误码ID | 错误信息 | 53| ------- | -------- | 54| 16000050 | Internal error. | 55 56以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 57 58**示例**: 59 60```ts 61import abilityManager from '@ohos.app.ability.abilityManager'; 62import { Configuration } from '@ohos.app.ability.Configuration'; 63import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant'; 64 65const config: Configuration = { 66 language: 'Zh-Hans', // 简体中文 67 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 68 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 69 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' 70 displayId: 1, // 应用在Id为1的物理屏上显示 71 hasPointerDevice: true, // 指针类型设备已连接 72}; 73 74try { 75 abilityManager.updateConfiguration(config, (err) => { 76 if (err) { 77 console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); 78 } else { 79 console.log('updateConfiguration success.'); 80 } 81 }); 82} catch (paramError) { 83 console.error(`error.code: ${paramError.code}, error.message: ${paramError.message}`); 84} 85``` 86 87## updateConfiguration 88 89updateConfiguration(config: Configuration): Promise\<void> 90 91通过修改配置来更新配置(Promise形式)。 92 93**需要权限**: ohos.permission.UPDATE_CONFIGURATION 94 95**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 96 97**参数**: 98 99| 参数名 | 类型 | 必填 | 说明 | 100| --------- | ---------------------------------------- | ---- | -------------- | 101| config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | 102 103**返回值:** 104 105| 类型 | 说明 | 106| ---------------------------------------- | ------- | 107| Promise\<void> | 以Promise方式返回接口运行结果息,可进行错误处理或其他自定义处理。 | 108 109**错误码**: 110 111| 错误码ID | 错误信息 | 112| ------- | -------- | 113| 16000050 | Internal error. | 114 115以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 116 117**示例**: 118 119```ts 120import abilityManager from '@ohos.app.ability.abilityManager'; 121import { Configuration } from '@ohos.app.ability.Configuration'; 122import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant'; 123import { BusinessError } from '@ohos.base'; 124 125const config: Configuration = { 126 language: 'Zh-Hans', // 简体中文 127 colorMode: ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT, // 浅色模式 128 direction: ConfigurationConstant.Direction.DIRECTION_VERTICAL, // 垂直方向 129 screenDensity: ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_SDPI, // 屏幕像素密度为'sdpi' 130 displayId: 1, // 应用在Id为1的物理屏上显示 131 hasPointerDevice: true, // 指针类型设备已连接 132}; 133 134try { 135 abilityManager.updateConfiguration(config).then(() => { 136 console.log('updateConfiguration success.'); 137 }).catch((err: BusinessError) => { 138 console.error(`updateConfiguration fail, err: ${JSON.stringify(err)}`); 139 }); 140} catch (paramError) { 141 console.error(`error.code: ${paramError.code}, error.message: ${paramError.message}`); 142} 143``` 144 145## getAbilityRunningInfos 146 147getAbilityRunningInfos(callback: AsyncCallback\<Array\<AbilityRunningInfo>>): void 148 149获取UIAbility运行相关信息(callback形式)。 150 151**需要权限**: ohos.permission.GET_RUNNING_INFO 152 153**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 154 155**参数**: 156 157| 参数名 | 类型 | 必填 | 说明 | 158| --------- | ---------------------------------------- | ---- | -------------- | 159| callback | AsyncCallback\<Array\<[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)>> | 是 | 以回调方式返回接口运行结果及运行中的ability信息,可进行错误处理或其他自定义处理。 | 160 161**错误码**: 162 163| 错误码ID | 错误信息 | 164| ------- | -------- | 165| 16000050 | Internal error. | 166 167以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 168 169**示例**: 170 171```ts 172import abilityManager from '@ohos.app.ability.abilityManager'; 173 174try { 175 abilityManager.getAbilityRunningInfos((err, data) => { 176 if (err) { 177 console.error(`getAbilityRunningInfos fail, error: ${JSON.stringify(err)}`); 178 } else { 179 console.log(`getAbilityRunningInfos success, data: ${JSON.stringify(data)}`); 180 } 181 }); 182} catch (paramError) { 183 console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); 184} 185``` 186 187## getAbilityRunningInfos 188 189getAbilityRunningInfos(): Promise\<Array\<AbilityRunningInfo>> 190 191获取UIAbility运行相关信息(Promise形式)。 192 193**需要权限**: ohos.permission.GET_RUNNING_INFO 194 195**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 196 197**返回值:** 198 199| 类型 | 说明 | 200| ---------------------------------------- | ------- | 201| Promise\<Array\<[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)>> | 以Promise方式返回接口运行结果及运行中的ability信息,可进行错误处理或其他自定义处理。 | 202 203**错误码**: 204 205| 错误码ID | 错误信息 | 206| ------- | -------- | 207| 16000050 | Internal error. | 208 209以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 210 211**示例**: 212 213```ts 214import abilityManager from '@ohos.app.ability.abilityManager'; 215import { BusinessError } from '@ohos.base'; 216 217try { 218 abilityManager.getAbilityRunningInfos().then((data) => { 219 console.log(`getAbilityRunningInfos success, data: ${JSON.stringify(data)}`); 220 }).catch((err: BusinessError) => { 221 console.error(`getAbilityRunningInfos fail, err: ${JSON.stringify(err)}`); 222 }); 223} catch (paramError) { 224 console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); 225} 226``` 227 228## getExtensionRunningInfos 229 230getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\<Array\<ExtensionRunningInfo>>): void 231 232获取关于运行扩展能力的信息(callback形式)。 233 234**需要权限**: ohos.permission.GET_RUNNING_INFO 235 236**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 237 238**参数**: 239 240| 参数名 | 类型 | 必填 | 说明 | 241| --------- | ---------------------------------------- | ---- | -------------- | 242| upperLimit | number | 是 | 获取消息数量的最大限制,最大为2<sup>31</sup>-1。 | 243| callback | AsyncCallback\<Array\<[ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo.md)>> | 是 | 以回调方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | 244 245**错误码**: 246 247| 错误码ID | 错误信息 | 248| ------- | -------- | 249| 16000050 | Internal error. | 250 251以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 252 253**示例**: 254 255```ts 256import abilityManager from '@ohos.app.ability.abilityManager'; 257 258let upperLimit = 10; 259 260try { 261 abilityManager.getExtensionRunningInfos(upperLimit, (err, data) => { 262 if (err) { 263 console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); 264 } else { 265 console.log(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); 266 } 267 }); 268} catch (paramError) { 269 console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); 270} 271``` 272 273## getExtensionRunningInfos 274 275getExtensionRunningInfos(upperLimit: number): Promise\<Array\<ExtensionRunningInfo>> 276 277获取关于运行扩展能力的信息(Promise形式)。 278 279**需要权限**: ohos.permission.GET_RUNNING_INFO 280 281**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 282 283**参数**: 284 285| 参数名 | 类型 | 必填 | 说明 | 286| --------- | ---------------------------------------- | ---- | -------------- | 287| upperLimit | number | 是 | 获取消息数量的最大限制,最大为2<sup>31</sup>-1。 | 288 289**返回值:** 290 291| 类型 | 说明 | 292| ---------------------------------------- | ------- | 293| Promise\<Array\<[ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo.md)>> | 以Promise方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | 294 295**错误码**: 296 297| 错误码ID | 错误信息 | 298| ------- | -------- | 299| 16000050 | Internal error. | 300 301以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 302 303**示例**: 304 305```ts 306import abilityManager from '@ohos.app.ability.abilityManager'; 307import { BusinessError } from '@ohos.base'; 308 309let upperLimit = 10; 310 311try { 312 abilityManager.getExtensionRunningInfos(upperLimit).then((data) => { 313 console.log(`getExtensionRunningInfos success, data: ${JSON.stringify(data)}`); 314 }).catch((err: BusinessError) => { 315 console.error(`getExtensionRunningInfos fail, err: ${JSON.stringify(err)}`); 316 }); 317} catch (paramError) { 318 console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); 319} 320``` 321 322## getTopAbility<sup>9+</sup> 323 324getTopAbility(callback: AsyncCallback\<ElementName>): void; 325 326获取窗口焦点的ability接口(callback形式)。 327 328**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 329 330**参数**: 331 332| 参数名 | 类型 | 必填 | 说明 | 333| --------- | ---------------------------------------- | ---- | -------------- | 334| callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | 是 | 以回调方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | 335 336**错误码**: 337 338| 错误码ID | 错误信息 | 339| ------- | -------- | 340| 16000050 | Internal error. | 341 342以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 343 344**示例**: 345 346```ts 347import abilityManager from '@ohos.app.ability.abilityManager'; 348 349abilityManager.getTopAbility((err, data) => { 350 if (err) { 351 console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); 352 } else { 353 console.log(`getTopAbility success, data: ${JSON.stringify(data)}`); 354 } 355}); 356``` 357 358## getTopAbility 359 360getTopAbility(): Promise\<ElementName>; 361 362获取窗口焦点的ability接口(Promise形式)。 363 364**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 365 366**返回值:** 367 368| 类型 | 说明 | 369| ---------------------------------------- | ------- | 370| Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| 以Promise方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | 371 372**错误码**: 373 374| 错误码ID | 错误信息 | 375| ------- | -------- | 376| 16000050 | Internal error. | 377 378以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 379 380**示例**: 381 382```ts 383import abilityManager from '@ohos.app.ability.abilityManager'; 384import { BusinessError } from '@ohos.base'; 385 386abilityManager.getTopAbility().then((data) => { 387 console.log(`getTopAbility success, data: ${JSON.stringify(data)}`); 388}).catch((err: BusinessError) => { 389 console.error(`getTopAbility fail, err: ${JSON.stringify(err)}`); 390}); 391``` 392 393## acquireShareData<sup>10+</sup> 394 395acquireShareData(missionId: number, callback: AsyncCallback<{[key: string]: Object}>): void; 396 397系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(callback形式)。 398 399**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 400 401**系统API**:该接口为系统接口,三方应用不支持调用。 402 403**参数**: 404 405| 参数名 | 类型 | 必填 | 说明 | 406| --------- | ---------------------------------------- | ---- | -------------- | 407| missionId | number | 是 | 目标应用的missionId,最大为2<sup>31</sup>-1。 | 408| callback | AsyncCallback<{[key: string]: Object}> | 是 | 以回调方式返回接口运行结果及分享得到的数据,可进行错误处理或其他自定义处理。 | 409 410**错误码**: 411 412| 错误码ID | 错误信息 | 413| ------- | -------- | 414| 16000050 | Internal error. | 415 416以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 417 418**示例**: 419 420```ts 421import abilityManager from '@ohos.app.ability.abilityManager'; 422import { BusinessError } from '@ohos.base'; 423 424try { 425 abilityManager.acquireShareData(1, (err, wantParam) => { 426 if (err) { 427 console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); 428 } else { 429 console.log(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); 430 } 431 }); 432} catch (paramError) { 433 let code = (paramError as BusinessError).code; 434 let message = (paramError as BusinessError).message; 435 console.error(`error.code: ${JSON.stringify(code)}, error.message: ${JSON.stringify(message)}`); 436} 437 438``` 439 440## acquireShareData<sup>10+</sup> 441 442acquireShareData(missionId: number): Promise<{[key: string]: Object}>; 443 444系统弹框通过该接口发起原子化服务分享,调用到目标UIAbility的onShare,返回分享数据(Promise形式)。 445 446**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 447 448**系统API**:该接口为系统接口,三方应用不支持调用。 449 450**参数**: 451 452| 参数名 | 类型 | 必填 | 说明 | 453| --------- | ---------------------------------------- | ---- | -------------- | 454| missionId | number | 是 | 目标应用的missionId,最大为2<sup>31</sup>-1。 | 455 456**返回值:** 457 458| 类型 | 说明 | 459| ---------------------------------------- | ------- | 460| Promise<{[key: string]: Object}>| 以Promise方式返回接口运行结果及分享数据,可进行错误处理或其他自定义处理。 | 461 462**错误码**: 463 464| 错误码ID | 错误信息 | 465| ------- | -------- | 466| 16000050 | Internal error. | 467 468以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 469 470**示例**: 471 472```ts 473import abilityManager from '@ohos.app.ability.abilityManager'; 474import { BusinessError } from '@ohos.base'; 475 476try { 477 abilityManager.acquireShareData(1).then((wantParam) => { 478 console.log(`acquireShareData success, data: ${JSON.stringify(wantParam)}`); 479 }).catch((err: BusinessError) => { 480 console.error(`acquireShareData fail, err: ${JSON.stringify(err)}`); 481 }); 482} catch (paramError) { 483 let code = (paramError as BusinessError).code; 484 let message = (paramError as BusinessError).message; 485 console.error(`error.code: ${JSON.stringify(code)}, error.message: ${JSON.stringify(message)}`); 486} 487``` 488 489## notifySaveAsResult<sup>10+</sup> 490 491notifySaveAsResult(parameter: AbilityResult, requestCode: number, callback: AsyncCallback\<void>): void; 492 493该接口仅供DLP(Data Loss Prevention, 数据丢失防护)管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用callback异步回调。 494 495**模型约束**:此接口仅可在Stage模型下使用。 496 497**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 498 499**系统接口**:此接口为系统接口。 500 501**参数**: 502 503| 参数名 | 类型 | 必填 | 说明 | 504| --------- | ---------------------------------------- | ---- | -------------- | 505| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | 506| requestCode | number | 是 | DLP管理应用传入的请求代码。 | 507| callback | AsyncCallback<void> | 是 | 回调函数。当另存为结果通知成功,err为undefined,否则为错误对象。 | 508 509**错误码**: 510 511| 错误码ID | 错误信息 | 512| ------- | -------- | 513| 16000050 | Internal error. | 514 515以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 516 517**示例**: 518 519```ts 520import abilityManager from '@ohos.app.ability.abilityManager'; 521import common from '@ohos.app.ability.common'; 522import Want from '@ohos.app.ability.Want'; 523import { BusinessError } from '@ohos.base'; 524let want: Want = { 525 bundleName: 'com.example.myapplication', 526 abilityName: 'EntryAbility' 527}; 528let resultCode = 100; 529// 返回给另存为行为发起方AbilityResult信息 530let abilityResult: common.AbilityResult = { 531 want, 532 resultCode 533}; 534let requestCode = 1; 535try { 536 abilityManager.notifySaveAsResult(abilityResult, requestCode, (err) => { 537 if (err && err.code != 0) { 538 console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); 539 } else { 540 console.log(`notifySaveAsResult success`); 541 } 542 }); 543} catch (paramError) { 544 let code = (paramError as BusinessError).code; 545 let message = (paramError as BusinessError).message; 546 console.error(`error.code: ${JSON.stringify(code)}, error.message: ${JSON.stringify(message)}`); 547} 548``` 549 550## notifySaveAsResult<sup>10+</sup> 551 552notifySaveAsResult(parameter: AbilityResult, requestCode: number): Promise\<void>; 553 554该接口仅供DLP管理应用使用,其他应用禁止使用,DLP管理应用通过该接口通知沙箱应用另存为结果。使用Promise异步回调。 555 556**模型约束**:此接口仅可在Stage模型下使用。 557 558**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core 559 560**系统接口**:此接口为系统接口。 561 562**参数**: 563 564| 参数名 | 类型 | 必填 | 说明 | 565| --------- | ---------------------------------------- | ---- | -------------- | 566| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 | 567| requestCode | number | 是 | DLP管理应用传入的请求代码。 | 568 569**返回值:** 570 571| 类型 | 说明 | 572| ---------------------------------------- | ------- | 573| Promise<void>| Promise对象。无返回结果的Promise对象。 | 574 575**错误码**: 576 577| 错误码ID | 错误信息 | 578| ------- | -------- | 579| 16000050 | Internal error. | 580 581以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 582 583**示例**: 584 585```ts 586import abilityManager from '@ohos.app.ability.abilityManager'; 587import common from '@ohos.app.ability.common'; 588import Want from '@ohos.app.ability.Want'; 589import { BusinessError } from '@ohos.base'; 590let want: Want = { 591 bundleName: 'com.example.myapplication', 592 abilityName: 'EntryAbility' 593}; 594let resultCode = 100; 595// 返回给另存为行为发起方AbilityResult信息 596let abilityResult: common.AbilityResult = { 597 want, 598 resultCode 599}; 600let requestCode = 1; 601try { 602 abilityManager.notifySaveAsResult(abilityResult, requestCode).catch((err) => { 603 console.error(`notifySaveAsResult fail, err: ${JSON.stringify(err)}`); 604 }).then(() => { 605 console.log(`notifySaveAsResult success`); 606 }); 607} catch (paramError) { 608 let code = (paramError as BusinessError).code; 609 let message = (paramError as BusinessError).message; 610 console.error(`error.code: ${JSON.stringify(code)}, error.message: ${JSON.stringify(message)}`); 611} 612```