• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.distributedMissionManager (分布式任务管理)(系统接口)
2<!--Kit: Ability Kit-->
3<!--Subsystem: DistributedAbilityManager-->
4<!--Owner: @hobbycao-->
5<!--Designer: @gsxiaowen-->
6<!--Tester: @hanjiawei-->
7<!--Adviser: @huipeizi-->
8
9分布式任务管理模块提供跨设备任务管理能力,包括注册和取消任务状态监听、开始和停止同步远端设备任务列表、通过任务ID和包名进行迁移任务等。
10
11> **说明:**
12>
13> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14>
15> 本模块为系统接口。
16
17## 导入模块
18
19```js
20import { distributedMissionManager } from '@kit.AbilityKit';
21```
22
23## distributedMissionManager.registerMissionListener
24
25registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, callback: AsyncCallback&lt;void&gt;): void;
26
27注册任务状态监听。使用callback异步回调。
28
29**需要权限**:ohos.permission.MANAGE_MISSIONS
30
31**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
32
33**参数:**
34
35| 参数名       | 类型                                      | 必填   | 说明        |
36| --------- | --------------------------------------- | ---- | --------- |
37| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 注册监听时的设备信息。 |
38| options   | [MissionCallback](#missioncallback)     | 是    | 注册的回调方法。 |
39| callback  | AsyncCallback&lt;void&gt;               | 是    | 回调函数,注册监听成功,err为undefined,否则为错误对象。 |
40
41**错误码:**
42
43以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
44
45| 错误码ID | 错误信息 |
46| ------- | -------------------------------- |
47| 201      | Permission denied.|
48| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
49
50**示例:**
51
52  ```ts
53  import { distributedMissionManager } from '@kit.AbilityKit';
54  import { BusinessError } from '@kit.BasicServicesKit';
55
56  // 实现回调函数
57  function NotifyMissionsChanged(deviceId: string): void {
58    console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId));
59  }
60  function NotifySnapshot(deviceId: string, missionId: number): void {
61    console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId));
62    console.log('NotifySnapshot missionId ' + JSON.stringify(missionId));
63  }
64  function NotifyNetDisconnect(deviceId: string, state: number): void {
65    console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId));
66    console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
67  }
68  try {
69    // 调用registerMissionListener接口
70    distributedMissionManager.registerMissionListener(
71      { deviceId: "" },
72      {
73        notifyMissionsChanged: NotifyMissionsChanged,
74        notifySnapshot: NotifySnapshot,
75        notifyNetDisconnect: NotifyNetDisconnect
76      },
77      (error: BusinessError) => {
78        if (error) {
79          console.error('registerMissionListener failed, cause: ' + JSON.stringify(error));
80          return;
81        }
82        console.info('registerMissionListener finished');
83      });
84  } catch (error) {
85    console.error('registerMissionListener failed, cause: ' + JSON.stringify(error));
86  }
87  ```
88## distributedMissionManager.registerMissionListener
89
90registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise&lt;void&gt;
91
92注册任务状态监听。使用promise异步回调。
93
94**需要权限**:ohos.permission.MANAGE_MISSIONS
95
96**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
97
98**参数:**
99
100| 参数名       | 类型                                       | 必填   | 说明       |
101| --------- | ---------------------------------------- | ---- | -------- |
102| parameter | [MissionDeviceInfo](#missiondeviceinfo)  | 是    | 注册监听时的设备信息。   |
103| options   | <a href="#missioncallback">MissionCallback</a> | 是    | 注册的回调方法。|
104
105**返回值:**
106
107| 类型                  | 说明               |
108| ------------------- | ---------------- |
109| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
110
111**错误码:**
112
113以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
114
115| 错误码ID | 错误信息 |
116| ------- | -------------------------------- |
117| 201      | Permission denied.|
118| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
119
120**示例:**
121
122  ```ts
123  import { distributedMissionManager } from '@kit.AbilityKit';
124  import { BusinessError } from '@kit.BasicServicesKit';
125
126  // 实现回调函数
127  function NotifyMissionsChanged(deviceId: string): void {
128    console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId));
129  }
130  function NotifySnapshot(deviceId: string, missionId: number): void {
131    console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId));
132    console.log('NotifySnapshot missionId ' + JSON.stringify(missionId));
133  }
134  function NotifyNetDisconnect(deviceId: string, state: number): void {
135    console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId));
136    console.log('NotifyNetDisconnect state ' + JSON.stringify(state));
137  }
138  try {
139      // 调用registerMissionListener接口
140      distributedMissionManager.registerMissionListener(
141        { deviceId: "" },
142        {
143          notifyMissionsChanged: NotifyMissionsChanged,
144          notifySnapshot: NotifySnapshot,
145          notifyNetDisconnect: NotifyNetDisconnect
146        }).then(() => {
147          console.info('registerMissionListener finished. ');
148      }).catch((error: BusinessError) => {
149          console.error('registerMissionListener failed, cause: ' + JSON.stringify(error));
150      })
151  } catch (error) {
152      console.error('registerMissionListener failed, cause: ' + JSON.stringify(error));
153  }
154  ```
155
156## distributedMissionManager.unRegisterMissionListener
157
158unRegisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback&lt;void&gt;): void;
159
160取消任务状态监听。使用callback异步回调。
161
162**需要权限**:ohos.permission.MANAGE_MISSIONS
163
164**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
165
166**参数:**
167
168| 参数名       | 类型                                      | 必填   | 说明        |
169| --------- | --------------------------------------- | ---- | --------- |
170| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 注册监听时的设备信息。    |
171| callback  | AsyncCallback&lt;void&gt;               | 是    | 回调函数,取消监听成功,err为undefined,否则为错误对象。|
172
173**错误码:**
174
175以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
176
177| 错误码ID | 错误信息 |
178| ------- | -------------------------------- |
179| 201      | Permission denied.|
180| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
181
182**示例:**
183
184  ```ts
185  import { distributedMissionManager } from '@kit.AbilityKit';
186  import { BusinessError } from '@kit.BasicServicesKit';
187
188  try {
189    distributedMissionManager.unRegisterMissionListener(
190      { deviceId: "" },
191      (error: BusinessError) => {
192        if (error) {
193            console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error));
194            return;
195        }
196        console.info('unRegisterMissionListener finished');
197    })
198  } catch (error) {
199      console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error));
200  }
201  ```
202
203## distributedMissionManager.unRegisterMissionListener
204
205unRegisterMissionListener(parameter: MissionDeviceInfo): Promise&lt;void&gt;
206
207取消任务状态监听。使用promise异步回调。
208
209**需要权限**:ohos.permission.MANAGE_MISSIONS
210
211**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
212
213**参数:**
214
215| 参数名       | 类型                                      | 必填   | 说明    |
216| --------- | --------------------------------------- | ---- | ----- |
217| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 注册监听时的设备信息。 |
218
219**返回值:**
220
221| 类型                  | 说明               |
222| ------------------- | ---------------- |
223| Promise&lt;void&gt; |无返回结果的Promise对象。 |
224
225**错误码:**
226
227以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
228
229| 错误码ID | 错误信息 |
230| ------- | -------------------------------- |
231| 201      | Permission denied.|
232| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
233
234**示例:**
235
236  ```ts
237  import { distributedMissionManager } from '@kit.AbilityKit';
238  import { BusinessError } from '@kit.BasicServicesKit';
239
240  try {
241    distributedMissionManager.unRegisterMissionListener({deviceId: ""}).then(() => {
242      console.info('unRegisterMissionListener finished successfully');
243    }).catch((error: BusinessError) => {
244        console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error));
245    })
246  } catch (error) {
247      console.error('unRegisterMissionListener failed, cause: ' + JSON.stringify(error));
248  }
249  ```
250
251## distributedMissionManager.startSyncRemoteMissions
252
253startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback&lt;void&gt;): void;
254
255开始同步远端设备的任务列表。使用callback异步回调。
256
257**需要权限**:ohos.permission.MANAGE_MISSIONS
258
259**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
260
261**参数:**
262
263| 参数名       | 类型                                    | 必填   | 说明        |
264| --------- | ------------------------------------- | ---- | --------- |
265| parameter | [MissionParameter](#missionparameter) | 是    | 同步信息。     |
266| callback  | AsyncCallback&lt;void&gt;             | 是    | 回调函数,同步远端任务列表成功时,err为undefined,否则返回错误对象。 |
267
268**错误码:**
269
270以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
271
272| 错误码ID | 错误信息 |
273| ------- | -------------------------------- |
274| 201      | Permission denied.|
275| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
276
277**示例:**
278
279  ```ts
280  import { distributedMissionManager } from '@kit.AbilityKit';
281  import { BusinessError } from '@kit.BasicServicesKit';
282
283  try {
284    distributedMissionManager.startSyncRemoteMissions(
285      {
286        deviceId: "",
287        fixConflict: false,
288        tag: 0
289      },
290      (error: BusinessError) => {
291        if (error) {
292          console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
293          return;
294        }
295        console.info('startSyncRemoteMissions finished');}
296    )
297  } catch (error) {
298    console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
299  }
300  ```
301
302## distributedMissionManager.startSyncRemoteMissions
303
304startSyncRemoteMissions(parameter: MissionParameter): Promise&lt;void&gt;
305
306开始同步远端设备的任务列表。使用promise异步回调。
307
308**需要权限**:ohos.permission.MANAGE_MISSIONS
309
310**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
311
312**参数:**
313
314| 参数名       | 类型                                    | 必填   | 说明    |
315| --------- | ------------------------------------- | ---- | ----- |
316| parameter | [MissionParameter](#missionparameter) | 是    | 同步信息。 |
317
318**返回值:**
319
320| 类型                  | 说明               |
321| ------------------- | ---------------- |
322| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
323
324**错误码:**
325
326以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
327
328| 错误码ID | 错误信息 |
329| ------- | -------------------------------- |
330| 201      | Permission denied.|
331| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
332
333**示例:**
334
335  ```ts
336  import { distributedMissionManager } from '@kit.AbilityKit';
337  import { BusinessError } from '@kit.BasicServicesKit';
338
339  try {
340    distributedMissionManager.startSyncRemoteMissions(
341      {
342        deviceId: "",
343        fixConflict: false,
344        tag: 0
345      }
346    ).then(() => {
347        console.info('startSyncRemoteMissions finished successfully');
348      }).catch((error: BusinessError) => {
349      console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
350    })
351  } catch (error) {
352    console.error('startSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
353  }
354  ```
355
356## distributedMissionManager.stopSyncRemoteMissions
357
358stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback&lt;void&gt;): void;
359
360停止同步远端设备的任务列表。使用callback异步回调。
361
362**需要权限**:ohos.permission.MANAGE_MISSIONS
363
364**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
365
366**参数:**
367
368| 参数名       | 类型                                      | 必填   | 说明        |
369| --------- | --------------------------------------- | ---- | --------- |
370| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 同步信息。     |
371| callback  | AsyncCallback&lt;void&gt;               | 是    | 回调函数,停止同步远端任务列表成功时,err为undefined,否则为错误对象。 |
372
373**错误码:**
374
375以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
376
377| 错误码ID | 错误信息 |
378| ------- | -------------------------------- |
379| 201      | Permission denied.|
380| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
381
382**示例:**
383
384  ```ts
385  import { distributedMissionManager } from '@kit.AbilityKit';
386  import { BusinessError } from '@kit.BasicServicesKit';
387
388  try {
389    distributedMissionManager.stopSyncRemoteMissions(
390      {
391        deviceId: ""
392      },
393      (error: BusinessError) => {
394        if (error) {
395          console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
396          return;
397        }
398        console.info('stopSyncRemoteMissions finished');}
399    )
400  } catch (error) {
401    console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
402  }
403  ```
404
405## distributedMissionManager.stopSyncRemoteMissions
406
407stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise&lt;void&gt;
408
409停止同步远端设备的任务列表。使用promise异步回调。
410
411**需要权限**:ohos.permission.MANAGE_MISSIONS
412
413**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
414
415**参数:**
416
417| 参数名       | 类型                                      | 必填   | 说明    |
418| --------- | --------------------------------------- | ---- | ----- |
419| parameter | [MissionDeviceInfo](#missiondeviceinfo) | 是    | 同步信息。 |
420
421**返回值:**
422
423| 类型                  | 说明               |
424| ------------------- | ---------------- |
425| Promise&lt;void&gt; | 无返回结果的promise对象。 |
426
427**错误码:**
428
429以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
430
431| 错误码ID | 错误信息 |
432| ------- | -------------------------------- |
433| 201      | Permission denied.|
434| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
435
436**示例:**
437
438  ```ts
439  import { distributedMissionManager } from '@kit.AbilityKit';
440  import { BusinessError } from '@kit.BasicServicesKit';
441
442  try {
443    distributedMissionManager.stopSyncRemoteMissions(
444      {
445        deviceId: ""
446      }).then(() => {
447        console.info('stopSyncRemoteMissions finished successfully');
448      }).catch((error: BusinessError) => {
449      console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
450    })
451  } catch (error) {
452    console.error('stopSyncRemoteMissions failed, cause: ' + JSON.stringify(error));
453  }
454  ```
455
456## distributedMissionManager.continueMission
457
458continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback, callback: AsyncCallback&lt;void&gt;): void;
459
460通过指定任务ID(missionId)的方式进行迁移任务。使用callback异步回调。
461
462**需要权限**:ohos.permission.MANAGE_MISSIONSohos.permission.DISTRIBUTED_DATASYNC
463
464**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
465
466**参数:**
467
468| 参数名       | 类型                                      | 必填   | 说明    |
469| --------- | --------------------------------------- | ---- | ----- |
470| parameter | [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo-sys.md) | 是    | 迁移信息。 |
471| options | [ContinueCallback](js-apis-inner-application-continueCallback-sys.md) | 是    | 迁移任务完成回调函数。 |
472| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,迁移任务完成时,err为undefined,否则返回错误对象。 |
473
474**错误码:**
475
476以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[分布式调度错误码](./errorcode-DistributedSchedule.md)。
477
478| 错误码ID | 错误信息 |
479| ------- | -------------------------------------------- |
480| 201      | Permission denied.|
481| 202 | The application is not system-app, can not use system-api. |
482| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
483| 16300501 | The system ability work abnormally. |
484| 16300502 | Failed to get the missionInfo of the specified missionId. |
485| 16300503 | The application is not installed on the remote end and installation-free is not supported. |
486| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. |
487| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. |
488| 16300506 | The local continuation task is already in progress. |
489
490**示例:**
491
492  ```ts
493  import { distributedMissionManager } from '@kit.AbilityKit';
494  import { BusinessError } from '@kit.BasicServicesKit';
495
496  // 实现回调函数
497  function onContinueDone(resultCode: number): void {
498    console.log('onContinueDone resultCode: ' + JSON.stringify(resultCode));
499  };
500  try {
501    // 调用continueMission接口
502    distributedMissionManager.continueMission(
503      {
504        srcDeviceId: "",
505        dstDeviceId: "",
506        missionId: 1,
507        wantParam: {"key": "value"}
508      },
509      { onContinueDone: onContinueDone },
510      (error: BusinessError) => {
511        if (error) {
512          console.error('continueMission failed, cause: ' + JSON.stringify(error));
513          return;
514        }
515        console.info('continueMission finished');
516    })
517  } catch (error) {
518    console.error('continueMission failed, cause: ' + JSON.stringify(error));
519  }
520  ```
521
522## distributedMissionManager.continueMission
523
524continueMission(parameter: ContinueDeviceInfo, options: ContinueCallback): Promise&lt;void&gt;
525
526通过指定任务ID(missionId)的方式进行迁移任务。使用promise异步回调。
527
528**需要权限**:ohos.permission.MANAGE_MISSIONSohos.permission.DISTRIBUTED_DATASYNC
529
530**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
531
532**参数:**
533
534| 参数名       | 类型                                      | 必填   | 说明    |
535| --------- | --------------------------------------- | ---- | ----- |
536| parameter | [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo-sys.md) | 是    | 迁移信息。 |
537| options | [ContinueCallback](js-apis-inner-application-continueCallback-sys.md) | 是    | 迁移任务完成回调函数。 |
538
539**返回值:**
540
541| 类型                  | 说明               |
542| ------------------- | ---------------- |
543| Promise&lt;void&gt; |无返回结果的promise对象。 |
544
545**错误码:**
546
547以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[分布式调度错误码](./errorcode-DistributedSchedule.md)。
548
549| 错误码ID | 错误信息 |
550| ------- | -------------------------------------------- |
551| 201      | Permission denied.|
552| 202 | The application is not system-app, can not use system-api. |
553| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
554| 16300501 | The system ability work abnormally. |
555| 16300502 | Failed to get the missionInfo of the specified missionId. |
556| 16300503 | The application is not installed on the remote end and installation-free is not supported. |
557| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. |
558| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. |
559| 16300506 | The local continuation task is already in progress. |
560
561**示例:**
562
563  ```ts
564  import { distributedMissionManager } from '@kit.AbilityKit';
565  import { BusinessError } from '@kit.BasicServicesKit';
566
567  // 实现回调函数
568  function onContinueDone(resultCode: number): void {
569    console.log('onContinueDone resultCode: ' + JSON.stringify(resultCode));
570  };
571  try {
572    // 调用continueMission接口
573    distributedMissionManager.continueMission(
574      {
575        srcDeviceId: "",
576        dstDeviceId: "",
577        missionId: 1,
578        wantParam: {"key": "value"}
579      },
580      { onContinueDone: onContinueDone }).then(() => {
581        console.info('continueMission finished successfully');
582      }).catch((error: BusinessError) => {
583      console.error('continueMission failed, cause: ' + JSON.stringify(error));
584    })
585  } catch (error) {
586    console.error('continueMission failed, cause: ' + JSON.stringify(error));
587  }
588  ```
589
590## distributedMissionManager.continueMission<sup>10+</sup>
591
592continueMission(parameter: ContinueMissionInfo, callback: AsyncCallback&lt;void&gt;): void;
593
594通过指定包名(bundleName)的方式进行迁移任务。使用callback异步回调。
595
596**需要权限**:ohos.permission.MANAGE_MISSIONSohos.permission.DISTRIBUTED_DATASYNC
597
598**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
599
600**参数:**
601
602| 参数名       | 类型                                      | 必填   | 说明    |
603| --------- | --------------------------------------- | ---- | ----- |
604| parameter | [ContinueMissionInfo](./js-apis-inner-application-continueMissionInfo-sys.md) | 是    | 迁移信息。 |
605| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,通过指定包名迁移任务完成时,err为undefined,否则为错误对象。 |
606
607**错误码:**
608
609以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[分布式调度错误码](./errorcode-DistributedSchedule.md)。
610
611| 错误码ID | 错误信息 |
612| ------- | -------------------------------------------- |
613| 201      | Permission denied.|
614| 202 | The application is not system-app, can not use system-api. |
615| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
616| 16300501 | The system ability work abnormally. |
617| 16300503 | The application is not installed on the remote end and installation-free is not supported. |
618| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. |
619| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. |
620| 16300506 | The local continuation task is already in progress. |
621| 16300507 | Failed to get the missionInfo of the specified bundle name. |
622
623**示例:**
624
625  ```ts
626  import { distributedMissionManager } from '@kit.AbilityKit';
627  import { BusinessError } from '@kit.BasicServicesKit';
628
629  try {
630    distributedMissionManager.continueMission(
631      {
632        srcDeviceId: "",
633        dstDeviceId: "",
634        bundleName: "ohos.test.continueapp",
635        wantParam: {"key": "value"}
636      },
637      (error: BusinessError) => {
638        if (error) {
639          console.error('continueMission failed, cause: ' + JSON.stringify(error));
640          return;
641        }
642        console.info('continueMission finished');
643    })
644  } catch (error) {
645    console.error('continueMission failed, cause: ' + JSON.stringify(error));
646  }
647  ```
648
649## distributedMissionManager.continueMission<sup>10+</sup>
650
651continueMission(parameter: ContinueMissionInfo): Promise&lt;void&gt;
652
653通过指定包名(bundleName)的方式进行迁移任务。使用Promise异步回调。
654
655**需要权限**:ohos.permission.MANAGE_MISSIONSohos.permission.DISTRIBUTED_DATASYNC
656
657**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
658
659**参数:**
660
661| 参数名       | 类型                                      | 必填   | 说明    |
662| --------- | --------------------------------------- | ---- | ----- |
663| parameter | [ContinueMissionInfo](./js-apis-inner-application-continueMissionInfo-sys.md) | 是    | 迁移信息。 |
664
665**返回值:**
666
667| 类型                  | 说明               |
668| ------------------- | ---------------- |
669| Promise&lt;void&gt; | 无返回结果的promise对象。 |
670
671**错误码:**
672
673以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[分布式调度错误码](./errorcode-DistributedSchedule.md)。
674
675| 错误码ID | 错误信息 |
676| ------- | -------------------------------------------- |
677| 201      | Permission denied.|
678| 202 | The application is not system-app, can not use system-api. |
679| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
680| 16300501 | The system ability work abnormally. |
681| 16300503 | The application is not installed on the remote end and installation-free is not supported. |
682| 16300504 | The application is not installed on the remote end but installation-free is supported, try again with freeInstall flag. |
683| 16300505 | The operation device must be the device where the application to be continued is located or the target device to be continued. |
684| 16300506 | The local continuation task is already in progress. |
685| 16300507 | Failed to get the missionInfo of the specified bundle name. |
686
687**示例:**
688
689  ```ts
690  import { distributedMissionManager } from '@kit.AbilityKit';
691  import { BusinessError } from '@kit.BasicServicesKit';
692
693  try {
694      distributedMissionManager.continueMission(
695        {
696          srcDeviceId: "",
697          dstDeviceId: "",
698          bundleName: "ohos.test.continueapp",
699          wantParam: {"key": "value"}
700        }
701      ).then(() => {
702          console.info('continueMission finished successfully');
703      }).catch((error: BusinessError) => {
704          console.error('continueMission failed, cause: ' + JSON.stringify(error));
705      })
706  } catch (error) {
707      console.error('continueMission failed, cause: ' + JSON.stringify(error));
708  }
709  ```
710
711## distributedMissionManager.on('continueStateChange')<sup>11+</sup>
712
713on(type: 'continueStateChange',  callback: Callback&lt;ContinueCallbackInfo&gt;): void
714
715注册当前任务流转状态的监听。
716
717**需要权限**:ohos.permission.MANAGE_MISSIONS
718
719**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
720
721**参数:**
722
723| 参数名       | 类型                                       | 必填   | 说明       |
724| --------- | ---------------------------------------- | ---- | -------- |
725| type | string  | 是    | 当前任务流转状态,取值为'continueStateChange'。    |
726| callback | Callback&lt;[ContinueCallbackInfo](#continuecallbackinfo11)&gt; | 是    | 回调函数,返回当前任务的流转状态和流转信息。    |
727
728**错误码:**
729
730以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
731
732| 错误码ID | 错误信息 |
733| ------- | -------------------------------- |
734| 201      | Permission denied.|
735| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
736
737**示例:**
738
739```js
740  import { distributedMissionManager } from '@kit.AbilityKit';
741
742  try {
743    distributedMissionManager.on('continueStateChange', (data) => {
744      console.info("continueStateChange on:" + JSON.stringify(data));
745    });
746  } catch (error) {
747    console.error("continueStateChange err: " + JSON.stringify(error));
748  }
749```
750
751## distributedMissionManager.off('continueStateChange')<sup>11+</sup>
752
753off(type: 'continueStateChange',  callback?: Callback&lt;ContinueCallbackInfo&gt;): void
754
755取消当前任务流转的状态监听。
756
757**需要权限**:ohos.permission.MANAGE_MISSIONS
758
759**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
760
761**参数:**
762
763| 参数名       | 类型                                       | 必填   | 说明       |
764| --------- | ---------------------------------------- | ---- | -------- |
765| type | string  | 是    | 当前任务流转状态,取值为'continueStateChange'。    |
766| callback | Callback&lt;[ContinueCallbackInfo](#continuecallbackinfo11)&gt; | 否    | 需要取消的回调函数。<br>参数不填写,取消type对应的所有回调监听。    |
767
768**错误码:**
769
770以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
771
772| 错误码ID | 错误信息 |
773| ------- | -------------------------------- |
774| 201      | Permission denied.|
775| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
776
777**示例:**
778
779```js
780  import { distributedMissionManager } from '@kit.AbilityKit';
781
782  try {
783    distributedMissionManager.off('continueStateChange', (data) => {
784      console.info("continueStateChange off:" + JSON.stringify(data));
785    });
786  } catch (err) {
787    console.error("continueStateChange err: " + JSON.stringify(err));
788  }
789```
790
791## MissionCallback
792
793type MissionCallback = _MissionCallback
794
795作为可以[registerMissionListener](js-apis-distributedMissionManager-sys.md#distributedmissionmanagerregistermissionlistener)的入参,表示开始同步后,建立的回调函数。
796
797**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
798
799| 类型 | 说明 |
800| --- | --- |
801| [_MissionCallback](js-apis-inner-application-missionCallbacks-sys.md) | 作为可以registerMissionListener的入参,表示开始同步后,建立的回调函数。 |
802
803## MissionParameter
804
805type MissionParameter = _MissionParameter
806
807作为[startSyncRemoteMissions](js-apis-distributedMissionManager-sys.md#distributedmissionmanagerstartsyncremotemissions)的入参,表示同步时所需参数的枚举。
808
809**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
810
811| 类型 | 说明 |
812| --- | --- |
813| [_MissionParameter](js-apis-inner-application-missionParameter-sys.md) | 作为startSyncRemoteMissions的入参,表示同步时所需参数的枚举。 |
814
815## MissionDeviceInfo
816
817type MissionDeviceInfo = _MissionDeviceInfo
818
819可以作为[registerMissionListener](js-apis-distributedMissionManager-sys.md#distributedmissionmanagerregistermissionlistener)的入参,表示注册监听时所需参数的枚举。
820
821**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
822
823| 类型 | 说明 |
824| --- | --- |
825| [_MissionDeviceInfo](js-apis-inner-application-missionDeviceInfo-sys.md) | 可以作为registerMissionListener的入参,表示注册监听时所需参数的枚举。 |
826
827## ContinueState<sup>10+</sup>
828
829当前任务流转状态的枚举。
830
831**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
832
833| 名称           | 值       | 说明                                                         |
834| ------------- | --------- | ------------------------------------------------------------ |
835| ACTIVE        | 0         | 表示当前任务流转处于激活状态。                              |
836| INACTIVE      | 1         | 表示当前任务流转处于未激活状态。                            |
837
838## ContinueCallbackInfo<sup>11+</sup>
839
840当前任务流转状态监听的回调信息,包含流转状态和流转信息。
841
842**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
843
844| 名称       | 类型    | 只读   | 可选   | 说明          |
845| -------- | ------ | ---- | ---- | ----------- |
846| state | [ContinueState](#continuestate10)   | 否    | 否    |   表示当前任务的流转状态。 |
847| info  | [ContinuableInfo](./js-apis-inner-application-continuableInfo-sys.md) | 否    | 否    |   表示当前任务的流转信息。 |