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