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