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<void>): 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<void> | 是 | 回调函数,注册监听成功,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<void> 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<void> | 无返回结果的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<void>): 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<void> | 是 | 回调函数,取消监听成功,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<void> 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<void> |无返回结果的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<void>): 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<void> | 是 | 回调函数,同步远端任务列表成功时,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<void> 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<void> | 无返回结果的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<void>): 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<void> | 是 | 回调函数,停止同步远端任务列表成功时,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<void> 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<void> | 无返回结果的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<void>): void; 459 460通过指定任务ID(missionId)的方式进行迁移任务。使用callback异步回调。 461 462**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.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<void> | 是 | 回调函数,迁移任务完成时,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<void> 525 526通过指定任务ID(missionId)的方式进行迁移任务。使用promise异步回调。 527 528**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.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<void> |无返回结果的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<void>): void; 593 594通过指定包名(bundleName)的方式进行迁移任务。使用callback异步回调。 595 596**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.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<void> | 是 | 回调函数,通过指定包名迁移任务完成时,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<void> 652 653通过指定包名(bundleName)的方式进行迁移任务。使用Promise异步回调。 654 655**需要权限**:ohos.permission.MANAGE_MISSIONS,ohos.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<void> | 无返回结果的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<ContinueCallbackInfo>): 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<[ContinueCallbackInfo](#continuecallbackinfo11)> | 是 | 回调函数,返回当前任务的流转状态和流转信息。 | 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<ContinueCallbackInfo>): 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<[ContinueCallbackInfo](#continuecallbackinfo11)> | 否 | 需要取消的回调函数。<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) | 否 | 否 | 表示当前任务的流转信息。 |