• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&nbsp;接口调用方的相关信息。 |
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&nbsp;接口调用方的相关信息。 |
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