1 # @ohos.cooperate (Screen Hopping) (System API) 2 3 The **cooperate** module implements screen hopping for two or more networked devices to share the keyboard and mouse for collaborative operations. 4 5 > **NOTE** 6 > 7 > - The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8 > 9 > - The APIs provided by this module are system APIs. 10 11 ## Modules to Import 12 13 ```ts 14 import cooperate from '@ohos.cooperate'; 15 ``` 16 17 ## cooperate.prepareCooperate<sup>11+</sup> 18 19 prepareCooperate(callback: AsyncCallback<void>): void; 20 21 Prepares for screen hopping. This API uses an asynchronous callback to return the result. 22 23 **Required permissions**: ohos.permission.COOPERATE_MANAGER 24 25 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 26 27 **Parameters** 28 29 | Name | Type | Mandatory| Description | 30 | -------- | ------------------------- | ---- | ------------------------------------------------------------ | 31 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 32 33 **Error codes** 34 35 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 36 37 | ID| Error Message | 38 | -------- | ----------------- | 39 | 201 | Permission denied. | 40 | 202 | Not system application. | 41 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 42 43 **Example** 44 45 ```ts 46 import { BusinessError } from '@ohos.base'; 47 try { 48 cooperate.prepareCooperate((error: BusinessError) => { 49 if (error) { 50 console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 51 return; 52 } 53 console.log(`Keyboard mouse crossing prepareCooperate success.`); 54 }); 55 } catch (error) { 56 console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 57 } 58 ``` 59 60 ## cooperate.prepareCooperate<sup>11+</sup> 61 62 prepareCooperate(): Promise<void>; 63 64 Prepares for screen hopping. This API uses a promise to return the result. 65 66 **Required permissions**: ohos.permission.COOPERATE_MANAGER 67 68 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 69 70 **Return value** 71 72 | Parameters | Description | 73 | ------------------- | ------------------------- | 74 | Promise<void> | Promise that returns no value.| 75 76 **Error codes** 77 78 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 79 80 | ID| Error Message | 81 | -------- | ----------------- | 82 | 201 | Permission denied. | 83 | 202 | Not system application. | 84 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 85 86 **Example** 87 88 ```ts 89 import { BusinessError } from '@ohos.base'; 90 try { 91 cooperate.prepareCooperate().then(() => { 92 console.log(`Keyboard mouse crossing prepareCooperate success.`); 93 }, (error: BusinessError) => { 94 console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 95 }); 96 } catch (error) { 97 console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 98 } 99 ``` 100 101 102 103 ## cooperate.unprepareCooperate<sup>11+</sup> 104 105 unprepareCooperate(callback: AsyncCallback<void>): void; 106 107 Cancels the preparation for screen hopping. This API uses an asynchronous callback to return the result. 108 109 **Required permissions**: ohos.permission.COOPERATE_MANAGER 110 111 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 112 113 | Name | Type | Mandatory| Description | 114 | -------- | ------------------------- | ---- | ------------------------------------------------------------ | 115 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 116 117 **Error codes** 118 119 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 120 121 | ID| Error Message | 122 | -------- | ----------------- | 123 | 201 | Permission denied. | 124 | 202 | Not system application. | 125 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 126 127 **Example** 128 129 ```ts 130 import { BusinessError } from '@ohos.base'; 131 try { 132 cooperate.unprepareCooperate((error: BusinessError) => { 133 if (error) { 134 console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 135 return; 136 } 137 console.log(`Keyboard mouse crossing unprepareCooperate success.`); 138 }); 139 } catch (error) { 140 console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 141 } 142 ``` 143 144 ## cooperate.unprepareCooperate<sup>11+</sup> 145 146 unprepareCooperate(): Promise<void>; 147 148 Cancels the preparation for screen hopping. This API uses a promise to return the result. 149 150 **Required permissions**: ohos.permission.COOPERATE_MANAGER 151 152 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 153 154 **Return value** 155 156 | Parameters | Description | 157 | ------------------- | ------------------------- | 158 | Promise<void> | Promise that returns no value.| 159 160 **Error codes** 161 162 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 163 164 | ID| Error Message | 165 | -------- | ----------------- | 166 | 201 | Permission denied. | 167 | 202 | Not system application. | 168 169 **Example** 170 171 ```ts 172 import { BusinessError } from '@ohos.base'; 173 try { 174 cooperate.unprepareCooperate().then(() => { 175 console.log(`Keyboard mouse crossing unprepareCooperate success.`); 176 }, (error: BusinessError) => { 177 console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 178 }); 179 } catch (error) { 180 console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 181 } 182 ``` 183 184 185 186 ## cooperate.activateCooperate<sup>11+</sup> 187 188 activateCooperate(targetNetworkId: string, inputDeviceId: number, callback: AsyncCallback<void>): void; 189 190 Starts screen hopping. This API uses an asynchronous callback to return the result. 191 192 **Required permissions**: ohos.permission.COOPERATE_MANAGER 193 194 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 195 196 **Parameters** 197 198 | Name | Type | Mandatory| Description | 199 | --------------- | ------------------------- | ---- | ------------------------------------------------------------ | 200 | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | 201 | inputDeviceId | number | Yes | Identifier of the input device for screen hopping. | 202 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 203 204 **Error codes** 205 206 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 207 208 | ID| Error Message | 209 | -------- | ----------------- | 210 | 201 | Permission denied. | 211 | 202 | Not system application. | 212 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 213 | 20900001 | Operation failed. | 214 215 **Example** 216 217 ```ts 218 import { BusinessError } from '@ohos.base'; 219 let targetNetworkId = "networkId"; 220 let inputDeviceId = 0; 221 try { 222 cooperate.activateCooperate(targetNetworkId, inputDeviceId, (error: BusinessError) => { 223 if (error) { 224 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 225 return; 226 } 227 console.log(`Start Keyboard mouse crossing success.`); 228 }); 229 } catch (error) { 230 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 231 } 232 ``` 233 234 ## cooperate.activateCooperate<sup>11+</sup> 235 236 activateCooperate(targetNetworkId: string, inputDeviceId: number): Promise<void>; 237 238 Starts screen hopping. This API uses a promise to return the result. 239 240 **Required permissions**: ohos.permission.COOPERATE_MANAGER 241 242 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 243 244 **Parameters** 245 246 | Name | Type | Mandatory| Description | 247 | --------------- | ------ | ---- | ------------------------ | 248 | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping.| 249 | inputDeviceId | number | Yes | Identifier of the input device for screen hopping. | 250 251 **Return value** 252 253 | Name | Description | 254 | ------------------- | ------------------------- | 255 | Promise<void> | Promise that returns no value.| 256 257 **Error codes** 258 259 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 260 261 | ID| Error Message | 262 | -------- | ----------------- | 263 | 201 | Permission denied. | 264 | 202 | Not system application. | 265 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 266 | 20900001 | Operation failed. | 267 268 **Example** 269 270 ```ts 271 import { BusinessError } from '@ohos.base'; 272 let targetNetworkId = "networkId"; 273 let inputDeviceId = 0; 274 try { 275 cooperate.activateCooperate(targetNetworkId, inputDeviceId).then(() => { 276 console.log(`Start Keyboard mouse crossing success.`); 277 }, (error: BusinessError) => { 278 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 279 }); 280 } catch (error) { 281 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 282 } 283 ``` 284 285 286 287 ## cooperate.deactivateCooperate<sup>11+</sup> 288 289 deactivateCooperate(isUnchained: boolean, callback: AsyncCallback<void>): void; 290 291 Stops screen hopping. This API uses an asynchronous callback to return the result. 292 293 **Required permissions**: ohos.permission.COOPERATE_MANAGER 294 295 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 296 297 **Parameters** 298 299 | Name | Type | Mandatory| Description | 300 | ----------- | ------------------------- | ---- | ------------------------------------------------------------ | 301 | isUnchained | boolean | Yes | Whether to disable the cross-device link. The value **true** means to disable the cross-device link, and the value **false** means the opposite.| 302 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 303 304 **Error codes** 305 306 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 307 308 | ID| Error Message | 309 | -------- | ----------------- | 310 | 201 | Permission denied. | 311 | 202 | Not system application. | 312 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 313 314 **Example** 315 316 ```ts 317 import { BusinessError } from '@ohos.base'; 318 try { 319 cooperate.deactivateCooperate(false, (error: BusinessError) => { 320 if (error) { 321 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 322 return; 323 } 324 console.log(`Stop Keyboard mouse crossing success.`); 325 }); 326 } catch (error) { 327 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 328 } 329 ``` 330 331 ## cooperate.deactivateCooperate<sup>11+</sup> 332 333 deactivateCooperate(isUnchained: boolean): Promise<void>; 334 335 Stops screen hopping. This API uses a promise to return the result. 336 337 **Required permissions**: ohos.permission.COOPERATE_MANAGER 338 339 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 340 341 **Parameters** 342 343 | Name | Type | Mandatory| Description | 344 | ----------- | ------- | ---- | ------------------------------------------------------------ | 345 | isUnchained | boolean | Yes | Whether to disable the cross-device link. The value **true** means to disable the cross-device link, and the value **false** means the opposite.| 346 347 **Return value** 348 349 | Name | Description | 350 | ------------------- | ------------------------- | 351 | Promise<void> | Promise that returns no value.| 352 353 **Error codes** 354 355 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 356 357 | ID| Error Message | 358 | -------- | ----------------- | 359 | 201 | Permission denied. | 360 | 202 | Not system application. | 361 362 **Example** 363 364 ```ts 365 import { BusinessError } from '@ohos.base'; 366 try { 367 cooperate.deactivateCooperate(false).then(() => { 368 console.log(`Stop Keyboard mouse crossing success.`); 369 }, (error: BusinessError) => { 370 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 371 }); 372 } catch (error) { 373 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 374 } 375 ``` 376 377 378 379 ## cooperate.getCooperateSwitchState<sup>11+</sup> 380 381 getCooperateSwitchState(networkId: string, callback: AsyncCallback<boolean>): void; 382 383 Obtains the screen hopping status of the target device. This API uses an asynchronous callback to return the result. 384 385 **Required permissions**: ohos.permission.COOPERATE_MANAGER 386 387 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 388 389 **Parameters** 390 391 | Name | Type | Mandatory| Description | 392 | --------- | ---------------------------- | ---- | ------------------------------------------------------------ | 393 | networkId | string | Yes | Descriptor of the target device for screen hopping. | 394 | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| 395 396 **Error codes** 397 398 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 399 400 | ID| Error Message | 401 | -------- | ----------------- | 402 | 201 | Permission denied. | 403 | 202 | Not system application. | 404 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 405 406 **Example** 407 408 ```ts 409 import { BusinessError } from '@ohos.base'; 410 let deviceDescriptor = "networkId"; 411 try { 412 cooperate.getCooperateSwitchState(deviceDescriptor, (error: BusinessError, data: boolean) => { 413 if (error) { 414 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 415 return; 416 } 417 console.log(`Get the status success, data: ${JSON.stringify(data)}`); 418 }); 419 } catch (error) { 420 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 421 } 422 ``` 423 424 ## cooperate.getCooperateSwitchState<sup>11+</sup> 425 426 getCooperateSwitchState(networkId: string): Promise<boolean>; 427 428 Obtains the screen hopping status of the target device. This API uses a promise to return the result. 429 430 **Required permissions**: ohos.permission.COOPERATE_MANAGER 431 432 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 433 434 **Parameters** 435 436 | Name | Type | Mandatory| Description | 437 | --------- | ------ | ---- | ------------------------ | 438 | networkId | string | Yes | Descriptor of the target device for screen hopping.| 439 440 **Return value** 441 442 | Parameters | Description | 443 | ---------------------- | ------------------------------------------------------------ | 444 | Promise<boolean> | Promise used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| 445 446 **Error codes** 447 448 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 449 450 | ID| Error Message | 451 | -------- | ----------------- | 452 | 201 | Permission denied. | 453 | 202 | Not system application. | 454 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 455 456 **Example** 457 458 ```ts 459 import { BusinessError } from '@ohos.base'; 460 let deviceDescriptor = "networkId"; 461 try { 462 cooperate.getCooperateSwitchState(deviceDescriptor).then((data: boolean) => { 463 console.log(`Get the status success, data: ${JSON.stringify(data)}`); 464 }, (error: BusinessError) => { 465 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 466 }); 467 } catch (error) { 468 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 469 } 470 ``` 471 472 473 474 ## on('cooperateMessage')<sup>11+</sup> 475 476 on(type: 'cooperateMessage', callback: Callback<CooperateMessage>): void; 477 478 Enables listening for screen hopping status change events. 479 480 **Required permissions**: ohos.permission.COOPERATE_MANAGER 481 482 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 483 484 **Parameters** 485 486 | Name | Type | Mandatory| Description | 487 | -------- | ----------------------------------------------------- | ---- | ------------------------------------ | 488 | type | string | Yes | Event type. The value is **cooperateMessage**. | 489 | callback | Callback<[CooperateMessage](#cooperatemessage11)> | Yes | Callback used to return the result.| 490 491 **Error codes** 492 493 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 494 495 | ID| Error Message | 496 | -------- | ----------------- | 497 | 201 | Permission denied. | 498 | 202 | Not system application. | 499 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 500 501 **Example** 502 503 ```ts 504 function callback(msg: cooperate.CooperateMessage) { 505 console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); 506 return false; 507 } 508 try { 509 cooperate.on('cooperateMessage', callback); 510 } catch (error) { 511 console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 512 } 513 ``` 514 515 516 517 ## off('cooperateMessage')<sup>11+</sup> 518 519 off(type: 'cooperateMessage', callback?: Callback<CooperateMessage>): void; 520 521 Disables listening for screen hopping status change events. 522 523 **Required permissions**: ohos.permission.COOPERATE_MANAGER 524 525 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 526 527 **Parameters** 528 529 | Name | Type | Mandatory| Description | 530 | -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | 531 | type | string | Yes | Event type. The value is **cooperate**. | 532 | callback | Callback<[CooperateMessage](#cooperatemessage11)> | No | Callback to be unregistered. If this parameter is not specified, all callbacks registered by the current application will be unregistered.| 533 534 **Error codes** 535 536 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 537 538 | ID| Error Message | 539 | -------- | ----------------- | 540 | 201 | Permission denied. | 541 | 202 | Not system application. | 542 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 543 544 **Example** 545 546 ```ts 547 // Unregister a single callback. 548 function callbackOn(msgOn: cooperate.CooperateMessage) { 549 console.log(`Keyboard mouse crossing event: ${JSON.stringify(msgOn)}`); 550 return false; 551 } 552 function callbackOff(msgOff: cooperate.CooperateMessage) { 553 console.log(`Keyboard mouse crossing event: ${JSON.stringify(msgOff)}`); 554 return false; 555 } 556 try { 557 cooperate.on('cooperateMessage', callbackOn); 558 cooperate.off('cooperateMessage', callbackOff); 559 } catch (error) { 560 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 561 } 562 ``` 563 564 ```ts 565 // Unregister all callbacks. 566 function callbackOn(msg: cooperate.CooperateMessage) { 567 console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); 568 return false; 569 } 570 try { 571 cooperate.on('cooperateMessage', callbackOn); 572 cooperate.off('cooperateMessage'); 573 } catch (error) { 574 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 575 } 576 ``` 577 578 579 ## on('cooperateMouse')<sup>12+</sup> 580 581 on(type: 'cooperateMouse', networkId: string, callback: Callback<MouseLocation>): void; 582 583 Registers a listener for the mouse cursor position of a device. 584 585 **Required permissions**: ohos.permission.COOPERATE_MANAGER 586 587 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 588 589 **Parameters** 590 591 | Name | Type | Mandatory| Description | 592 | -------- | ----------------------------------------------------- | ---- | ------------------------------------ | 593 | type | string | Yes | Event type, which is **'cooperateMouse'**. | 594 | networkId| string | Yes | Descriptor of the target device. | 595 | callback | Callback<[MouseLocation](#mouselocation12)> | Yes | Callback used to return the mouse cursor position of the device.| 596 597 **Error codes** 598 599 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 600 601 | ID| Error Message | 602 | -------- | ----------------- | 603 | 201 | Permission denied. | 604 | 202 | Not system application. | 605 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 606 607 **Example** 608 609 ```ts 610 function callback(data: cooperate.MouseLocation) { 611 console.log('displayX:' + data.displayX + 'displayY:' + data.displayX + 'displayWidth:' + 612 data.displayWidth + 'displayHeight:' + data.displayHeight ); 613 } 614 try { 615 let networkId: string = 'Default'; 616 cooperate.on('cooperateMouse', networkId, callback); 617 } catch (error) { 618 console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 619 } 620 ``` 621 622 623 624 ## off('cooperateMouse')<sup>12+</sup> 625 626 off(type: 'cooperateMouse', networkId: string, callback?: Callback<MouseLocation>): void; 627 628 Unregisters the listener for the mouse cursor position of a device. 629 630 **Required permissions**: ohos.permission.COOPERATE_MANAGER 631 632 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 633 634 **Parameters** 635 636 | Name | Type | Mandatory| Description | 637 | -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | 638 | type | string | Yes | Event type, which is **'cooperateMouse'**. | 639 | networkId| string | Yes | Descriptor of the target device. | 640 | callback | Callback<[MouseLocation](#mouselocation12)> | No | Callback to be unregistered. If this parameter is not specified, all callbacks registered by the current application will be unregistered.| 641 642 **Error codes** 643 644 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 645 646 | ID| Error Message | 647 | -------- | ----------------- | 648 | 201 | Permission denied. | 649 | 202 | Not system application. | 650 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 651 652 **Example** 653 654 ```ts 655 // Unregister a single callback. 656 function callbackOn(data: cooperate.MouseLocation) { 657 console.log('Register mouse location listener'); 658 return false; 659 } 660 function callbackOff(data: cooperate.MouseLocation) { 661 console.log('Unregister mouse location listener'); 662 return false; 663 } 664 try { 665 let networkId: string = 'Default'; 666 cooperate.on('cooperateMouse', networkId, callbackOn); 667 cooperate.off('cooperateMouse', networkId, callbackOff); 668 } catch (error) { 669 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 670 } 671 ``` 672 673 ```ts 674 // Unregister all callbacks. 675 function callbackOn(data: cooperate.MouseLocation) { 676 console.log('Register mouse location listener'); 677 } 678 try { 679 let networkId: string = 'Default'; 680 cooperate.on('cooperateMouse', networkId, callbackOn); 681 cooperate.off('cooperateMouse', networkId); 682 } catch (error) { 683 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 684 } 685 ``` 686 687 688 689 ## CooperateMessage<sup>11+</sup> 690 691 Defines a screen hopping status change event. 692 693 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 694 695 | Name | Type | Readable| Writable| Description | 696 | --------- | -------------- | ---- | ---- | ------------------------ | 697 | networkId | string | Yes | No | Descriptor of the target device for screen hopping.| 698 | state | CooperateState | Yes | No | Screen hopping status. | 699 700 701 ## MouseLocation<sup>12+</sup> 702 703 Defines the mouse pointer position for screen hopping. 704 705 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 706 707 | Name | Type | Readable| Writable| Description | 708 | --------- | -------------- | ---- | ---- | ------------------------ | 709 | displayX | number | Yes | No | Position of the mouse pointer on the X coordinate of the screen.| 710 | displayY | number | Yes | No | Position of the mouse pointer on the Y coordinate of the screen.| 711 | displayWidth | number | Yes | No | Screen width. | 712 | displayHeight | number | Yes | No | Screen height. | 713 714 715 716 ## CooperateState<sup>11+</sup> 717 718 Screen hopping status. 719 720 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 721 722 | Name | Type | Readable| Writable| Description | 723 | ------------------------------ | ------ | ---- | ---- | ---------------------- | 724 | COOPERATE_PREPARE | number | Yes | No | The preparation for screen hopping is finished. | 725 | COOPERATE_UNPREPARE | number | Yes | No | The preparation for screen hopping is cancelled.| 726 | COOPERATE_ACTIVATE | number | Yes | No | Screen hopping starts. | 727 | COOPERATE_ACTIVATE_SUCCESS | number | Yes | No | Starting screen hopping succeeds.| 728 | COOPERATE_ACTIVATE_FAIL | number | Yes | No | Starting screen hopping fails.| 729 | COOPERATE_DEACTIVATE_SUCCESS | number | Yes | No | Stopping screen hopping succeeds.| 730 | COOPERATE_DEACTIVATE_FAIL | number | Yes | No | Stopping screen hopping fails.| 731 | COOPERATE_SESSION_DISCONNECTED | number | Yes | No | The screen hopping session is disconnected.| 732 | COOPERATE_ACTIVATE_FAILURE | number | Yes | No | Screen hopping fails to start.| 733 | COOPERATE_DEACTIVATE_FAILURE | number | Yes | No | Screen hopping fails to stop.| 734 735 736 ## MouseLocation<sup>12+</sup> 737 738 Represents the mouse cursor position. 739 740 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 741 742 | Name | Type | Readable| Writable| Description | 743 | --------- | -------------- | ---- | ---- | ------------------------ | 744 | displayX | number | Yes | No | X coordinate of the mouse cursor.| 745 | displayY | number | Yes | No | Y coordinate of the mouse cursor.| 746 | displayWidth | number | Yes | No | Width of the screen where the mouse cursor is located.| 747 | displayHeight | number | Yes | No | Height of the screen where the mouse cursor is located.| 748 749 750 ## cooperate.prepare<sup>(deprecated)</sup> 751 752 prepare(callback: AsyncCallback<void>): void; 753 754 Prepares for screen hopping. This API uses an asynchronous callback to return the result. 755 756 > **NOTE** 757 > 758 > This API is deprecated since API version 10. You are advised to use [cooperate.prepareCooperate](#cooperatepreparecooperate11). 759 760 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 761 762 **Parameters** 763 764 | Name | Type | Mandatory | Description | 765 | -------- | ------------------------- | ---- | --------------------------- | 766 | callback | AsyncCallback<void> | Yes|Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object. | 767 768 **Error codes** 769 770 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 771 772 | ID| Error Message | 773 | -------- | ----------------- | 774 | 202 | Not system application. | 775 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 776 777 **Example** 778 779 ```ts 780 import { BusinessError } from '@ohos.base'; 781 try { 782 cooperate.prepare((error: BusinessError) => { 783 if (error) { 784 console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 785 return; 786 } 787 console.log(`Keyboard mouse crossing prepare success.`); 788 }); 789 } catch (error) { 790 console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 791 } 792 ``` 793 794 ## cooperate.prepare<sup>(deprecated)</sup> 795 796 prepare(): Promise<void>; 797 798 Prepares for screen hopping. This API uses a promise to return the result. 799 800 > **NOTE** 801 > 802 > This API is deprecated since API version 10. You are advised to use [cooperate.prepareCooperate](#cooperatepreparecooperate11-1). 803 804 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 805 806 **Return value** 807 808 | Parameters | Description | 809 | ------------------- | ------------------------------- | 810 | Promise<void> | Promise that returns no value.| 811 812 **Error codes** 813 814 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 815 816 | ID| Error Message | 817 | -------- | ----------------- | 818 | 202 | Not system application. | 819 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 820 821 **Example** 822 823 ```ts 824 import { BusinessError } from '@ohos.base'; 825 try { 826 cooperate.prepare().then(() => { 827 console.log(`Keyboard mouse crossing prepare success.`); 828 }, (error: BusinessError) => { 829 console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 830 }); 831 } catch (error) { 832 console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 833 } 834 ``` 835 836 837 838 ## cooperate.unprepare<sup>(deprecated)</sup> 839 840 unprepare(callback: AsyncCallback<void>): void; 841 842 Cancels the preparation for screen hopping. This API uses an asynchronous callback to return the result. 843 844 > **NOTE** 845 > 846 > This API is deprecated since API version 10. You are advised to use [cooperate.unprepareCooperate](#cooperateunpreparecooperate11). 847 848 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 849 850 | Name | Type | Mandatory| Description | 851 | -------- | ------------------------- | ---- | ------------------------------------------ | 852 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 853 854 **Error codes** 855 856 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 857 858 | ID| Error Message | 859 | -------- | ----------------- | 860 | 202 | Not system application. | 861 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 862 863 **Example** 864 865 ```ts 866 import { BusinessError } from '@ohos.base'; 867 try { 868 cooperate.unprepare((error: BusinessError) => { 869 if (error) { 870 console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 871 return; 872 } 873 console.log(`Keyboard mouse crossing unprepare success.`); 874 }); 875 } catch (error) { 876 console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 877 } 878 ``` 879 880 ## cooperate.unprepare<sup>(deprecated)</sup> 881 882 unprepare(): Promise<void>; 883 884 Cancels the preparation for screen hopping. This API uses a promise to return the result. 885 886 > **NOTE** 887 > 888 > This API is deprecated since API version 10. You are advised to use [cooperate.unprepareCooperate](#cooperateunpreparecooperate11-1). 889 890 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 891 892 **Return value** 893 894 | Parameters | Description | 895 | ------------------- | --------------------------------------------- | 896 | Promise<void> | Promise that returns no value.| 897 898 **Error codes** 899 900 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 901 902 | ID| Error Message | 903 | -------- | ----------------- | 904 | 202 | Not system application. | 905 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 906 907 **Example** 908 909 ```ts 910 import { BusinessError } from '@ohos.base'; 911 try { 912 cooperate.unprepare().then(() => { 913 console.log(`Keyboard mouse crossing unprepare success.`); 914 }, (error: BusinessError) => { 915 console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 916 }); 917 } catch (error) { 918 console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 919 } 920 ``` 921 922 923 924 ## cooperate.activate<sup>(deprecated)</sup> 925 926 activate(targetNetworkId: string, inputDeviceId: number, callback: AsyncCallback<void>): void; 927 928 Starts screen hopping. This API uses an asynchronous callback to return the result. 929 930 > **NOTE** 931 > 932 > This API is deprecated since API version 10. You are advised to use [cooperate.activateCooperate](#cooperateactivatecooperate11). 933 934 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 935 936 **Parameters** 937 938 | Name | Type | Mandatory | Description | 939 | -------- | ---------------------------- | ---- | ---------------------------- | 940 | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | 941 | inputDeviceId | number | Yes | Identifier of the input device for screen hopping.| 942 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 943 944 **Error codes** 945 946 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 947 948 | ID| Error Message| 949 | -------- | ---------------------------------------- | 950 | 20900001 | Operation failed.| 951 | 202 | Not system application. | 952 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 953 954 **Example** 955 956 ```ts 957 import { BusinessError } from '@ohos.base'; 958 let targetNetworkId = "networkId"; 959 let inputDeviceId = 0; 960 try { 961 cooperate.activate(targetNetworkId, inputDeviceId, (error: BusinessError) => { 962 if (error) { 963 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 964 return; 965 } 966 console.log(`Start Keyboard mouse crossing success.`); 967 }); 968 } catch (error) { 969 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 970 } 971 ``` 972 973 ## cooperate.activate<sup>(deprecated)</sup> 974 975 activate(targetNetworkId: string, inputDeviceId: number): Promise<void>; 976 977 Starts screen hopping. This API uses a promise to return the result. 978 979 > **NOTE** 980 > 981 > This API is deprecated since API version 10. You are advised to use [cooperate.activateCooperate](#cooperateactivatecooperate11-1). 982 983 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 984 985 **Parameters** 986 987 | Name | Type | Mandatory | Description | 988 | -------- | ---------------------------- | ---- | ---------------------------- | 989 | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | 990 | inputDeviceId | number | Yes | Identifier of the input device for screen hopping.| 991 992 993 994 **Return value** 995 996 | Name | Description | 997 | ---------------------- | ------------------------------- | 998 | Promise<void> | Promise that returns no value. | 999 1000 **Error codes** 1001 1002 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1003 1004 | ID| Error Message| 1005 | -------- | ---------------------------------------- | 1006 | 20900001 | Operation failed. | 1007 | 202 | Not system application. | 1008 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1009 1010 **Example** 1011 1012 ```ts 1013 import { BusinessError } from '@ohos.base'; 1014 let targetNetworkId = "networkId"; 1015 let inputDeviceId = 0; 1016 try { 1017 cooperate.activate(targetNetworkId, inputDeviceId).then(() => { 1018 console.log(`Start Keyboard mouse crossing success.`); 1019 }, (error: BusinessError) => { 1020 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1021 }); 1022 } catch (error) { 1023 console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1024 } 1025 ``` 1026 1027 1028 1029 ## cooperate.deactivate<sup>(deprecated)</sup> 1030 1031 deactivate(isUnchained: boolean, callback: AsyncCallback<void>): void; 1032 1033 Stops screen hopping. This API uses an asynchronous callback to return the result. 1034 1035 > **NOTE** 1036 > 1037 > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperatedeactivatecooperate11). 1038 1039 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1040 1041 **Parameters** 1042 1043 | Name | Type | Mandatory | Description | 1044 | -------- | ---------------------------- | ---- | ---------------------------- | 1045 | isUnchained | boolean | Yes| Whether to disable the cross-device link.<br> The value **true** means to disable the cross-device link, and the value **false** means the opposite.| 1046 | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| 1047 1048 **Error codes** 1049 1050 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1051 1052 | ID| Error Message | 1053 | -------- | ----------------- | 1054 | 202 | Not system application. | 1055 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1056 1057 **Example** 1058 1059 ```ts 1060 import { BusinessError } from '@ohos.base'; 1061 try { 1062 cooperate.deactivate(false, (error: BusinessError) => { 1063 if (error) { 1064 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1065 return; 1066 } 1067 console.log(`Stop Keyboard mouse crossing success.`); 1068 }); 1069 } catch (error) { 1070 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1071 } 1072 ``` 1073 1074 ## cooperate.deactivate<sup>(deprecated)</sup> 1075 1076 deactivate(isUnchained: boolean): Promise<void>; 1077 1078 Stops screen hopping. This API uses a promise to return the result. 1079 1080 > **NOTE** 1081 > 1082 > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperatedeactivatecooperate11-1). 1083 1084 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1085 1086 **Parameters** 1087 1088 | Name | Type | Mandatory| Description | 1089 | ----------- | ------- | ---- | ------------------ | 1090 | isUnchained | boolean | Yes | Whether to disable the cross-device link.<br> The value **true** means to disable the cross-device link, and the value **false** means the opposite.| 1091 1092 1093 1094 **Return value** 1095 1096 | Name | Description | 1097 | -------- | ---------------------------- | 1098 | Promise<void> | Promise that returns no value. | 1099 1100 **Error codes** 1101 1102 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1103 1104 | ID| Error Message | 1105 | -------- | ----------------- | 1106 | 202 | Not system application. | 1107 1108 **Example** 1109 1110 ```ts 1111 import { BusinessError } from '@ohos.base'; 1112 try { 1113 cooperate.deactivate(false).then(() => { 1114 console.log(`Stop Keyboard mouse crossing success.`); 1115 }, (error: BusinessError) => { 1116 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1117 }); 1118 } catch (error) { 1119 console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1120 } 1121 ``` 1122 1123 1124 1125 ## cooperate.getCrossingSwitchState<sup>(deprecated)</sup> 1126 1127 getCrossingSwitchState(networkId: string, callback: AsyncCallback<boolean>): void; 1128 1129 Obtains the screen hopping status of the target device. This API uses an asynchronous callback to return the result. 1130 1131 > **NOTE** 1132 > 1133 > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperategetcooperateswitchstate11). 1134 1135 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1136 1137 **Parameters** 1138 1139 | Name | Type | Mandatory | Description | 1140 | -------- | --------- | ---- | ---------------------------- | 1141 | networkId | string | Yes | Descriptor of the target device for screen hopping. | 1142 | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| 1143 1144 **Error codes** 1145 1146 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1147 1148 | ID| Error Message | 1149 | -------- | ----------------- | 1150 | 202 | Not system application. | 1151 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1152 1153 **Example** 1154 1155 ```ts 1156 import { BusinessError } from '@ohos.base'; 1157 let deviceDescriptor = "networkId"; 1158 try { 1159 cooperate.getCrossingSwitchState(deviceDescriptor, (error: BusinessError, data: boolean) => { 1160 if (error) { 1161 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1162 return; 1163 } 1164 console.log(`Get the status success, data: ${JSON.stringify(data)}`); 1165 }); 1166 } catch (error) { 1167 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1168 } 1169 ``` 1170 1171 ## cooperate.getCrossingSwitchState<sup>(deprecated)</sup> 1172 1173 getCrossingSwitchState(networkId: string): Promise<boolean>; 1174 1175 Obtains the screen hopping status of the target device. This API uses a promise to return the result. 1176 1177 > **NOTE** 1178 > 1179 > This API is deprecated since API version 10. You are advised to use [cooperate.getCooperateSwitchState](#cooperategetcooperateswitchstate11-1). 1180 1181 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1182 1183 **Parameters** 1184 1185 | Name | Type | Mandatory | Description | 1186 | -------- | --------- | ---- | ---------------------------- | 1187 | networkId | string | Yes | Descriptor of the target device for screen hopping. | 1188 1189 **Error codes** 1190 1191 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1192 1193 | ID| Error Message | 1194 | -------- | ----------------- | 1195 | 202 | Not system application. | 1196 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1197 1198 **Return value** 1199 1200 | Parameters | Description | 1201 | ------------------- | ------------------------------- | 1202 | Promise<boolean> | Promise used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| 1203 1204 1205 1206 **Example** 1207 1208 ```ts 1209 import { BusinessError } from '@ohos.base'; 1210 let deviceDescriptor = "networkId"; 1211 try { 1212 cooperate.getCrossingSwitchState(deviceDescriptor).then((data: boolean) => { 1213 console.log(`Get the status success, data: ${JSON.stringify(data)}`); 1214 }, (error: BusinessError) => { 1215 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1216 }); 1217 } catch (error) { 1218 console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1219 } 1220 ``` 1221 1222 1223 1224 ## on('cooperate')<sup>(deprecated)</sup> 1225 1226 on(type: 'cooperate', callback: Callback<{ networkId: string, msg: CooperateMsg }>): void; 1227 1228 Enables listening for screen hopping status change events. 1229 1230 > **NOTE** 1231 > 1232 > This API is deprecated since API version 10. You are advised to use [on('cooperateMessage')](#oncooperatemessage11). 1233 1234 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1235 1236 **Parameters** 1237 1238 | Name | Type | Mandatory| Description | 1239 | -------- | ---------------------------- | ---- | ---------------------------- | 1240 | type | string | Yes | Event type. The value is **cooperate**.| 1241 | callback | Callback<{ networkId: string, msg: [CooperateMsg](#cooperatemsgdeprecated) }> | Yes | Callback used to return the result.| 1242 1243 **Error codes** 1244 1245 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1246 1247 | ID| Error Message | 1248 | -------- | ----------------- | 1249 | 202 | Not system application. | 1250 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1251 1252 **Example** 1253 1254 ```ts 1255 function callback(networkId: string, msg: cooperate.CooperateMsg) { 1256 console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); 1257 return false; 1258 } 1259 try { 1260 cooperate.on('cooperate', callback); 1261 } catch (error) { 1262 console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1263 } 1264 ``` 1265 1266 1267 1268 ## off('cooperate')<sup>(deprecated)</sup> 1269 1270 off(type: 'cooperate', callback?: Callback<void>): void; 1271 1272 Disables listening for screen hopping status change events. 1273 1274 > **NOTE** 1275 > 1276 > This API is deprecated since API version 10. You are advised to use [off('cooperateMessage')](#offcooperatemessage11). 1277 1278 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1279 1280 **Parameters** 1281 1282 | Name | Type | Mandatory | Description | 1283 | -------- | ---------------------------- | ---- | ---------------------------- | 1284 | type | string | Yes | Event type. The value is **cooperate**.| 1285 | callback | AsyncCallback<void> | No | Callback to be unregistered. If this parameter is not specified, all callbacks registered by the current application will be unregistered.| 1286 1287 **Error codes** 1288 1289 For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). 1290 1291 | ID| Error Message | 1292 | -------- | ----------------- | 1293 | 202 | Not system application. | 1294 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 1295 1296 **Example** 1297 1298 ```ts 1299 // Unregister a single callback. 1300 function callbackOn(networkId: string, msg: cooperate.CooperateMsg) { 1301 console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); 1302 return false; 1303 } 1304 function callbackOff() { 1305 console.log(`Keyboard mouse crossing event`); 1306 return false; 1307 } 1308 try { 1309 cooperate.on('cooperate', callbackOn); 1310 cooperate.off('cooperate', callbackOff); 1311 } catch (error) { 1312 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1313 } 1314 ``` 1315 ```ts 1316 // Unregister all callbacks. 1317 function callbackOn(networkId: string, msg: cooperate.CooperateMsg) { 1318 console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); 1319 return false; 1320 } 1321 try { 1322 cooperate.on('cooperate', callbackOn); 1323 cooperate.off('cooperate'); 1324 } catch (error) { 1325 console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 1326 } 1327 ``` 1328 1329 1330 1331 ## CooperateMsg<sup>(deprecated)</sup> 1332 1333 Represents a screen hopping message notification. 1334 1335 > **NOTE** 1336 > 1337 > This API is deprecated since API version 10. You are advised to use [CooperateMessage](#cooperatemessage11). 1338 1339 **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate 1340 1341 | Name | Value | Description | 1342 | -------- | ----------------- | ----------------- | 1343 | COOPERATE_PREPARE | 0 | The preparation for screen hopping is finished. | 1344 | COOPERATE_UNPREPARE | 1 | The preparation for screen hopping is cancelled. | 1345 | COOPERATE_ACTIVATE | 2 | Screen hopping starts. | 1346 | COOPERATE_ACTIVATE_SUCCESS | 3 | Starting screen hopping succeeds.| 1347 | COOPERATE_ACTIVATE_FAIL | 4 | Starting screen hopping fails.| 1348 | COOPERATE_DEACTIVATE_SUCCESS | 5 | Stopping screen hopping succeeds.| 1349 | COOPERATE_DEACTIVATE_FAIL | 6 | Stopping screen hopping fails.| 1350 | COOPERATE_SESSION_DISCONNECTED | 7 | The screen hopping session is disconnected.| 1351