# @ohos.cooperate (Screen Hopping) (System API) The **cooperate** module implements screen hopping for two or more networked devices to share the keyboard and mouse for collaborative operations. > **NOTE** > > - 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. > > - The APIs provided by this module are system APIs. ## Modules to Import ```ts import cooperate from '@ohos.cooperate'; ``` ## cooperate.prepareCooperate11+ prepareCooperate(callback: AsyncCallback<void>): void; Prepares for screen hopping. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ------------------------------------------------------------ | | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.prepareCooperate((error: BusinessError) => { if (error) { console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Keyboard mouse crossing prepareCooperate success.`); }); } catch (error) { console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.prepareCooperate11+ prepareCooperate(): Promise<void>; Prepares for screen hopping. This API uses a promise to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Return value** | Parameters | Description | | ------------------- | ------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.prepareCooperate().then(() => { console.log(`Keyboard mouse crossing prepareCooperate success.`); }, (error: BusinessError) => { console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Keyboard mouse crossing prepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.unprepareCooperate11+ unprepareCooperate(callback: AsyncCallback<void>): void; Cancels the preparation for screen hopping. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ------------------------------------------------------------ | | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.unprepareCooperate((error: BusinessError) => { if (error) { console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Keyboard mouse crossing unprepareCooperate success.`); }); } catch (error) { console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.unprepareCooperate11+ unprepareCooperate(): Promise<void>; Cancels the preparation for screen hopping. This API uses a promise to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Return value** | Parameters | Description | | ------------------- | ------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.unprepareCooperate().then(() => { console.log(`Keyboard mouse crossing unprepareCooperate success.`); }, (error: BusinessError) => { console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Keyboard mouse crossing unprepareCooperate failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.activateCooperate11+ activateCooperate(targetNetworkId: string, inputDeviceId: number, callback: AsyncCallback<void>): void; Starts screen hopping. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | --------------- | ------------------------- | ---- | ------------------------------------------------------------ | | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | | inputDeviceId | number | Yes | Identifier of the input device for screen hopping. | | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | | 20900001 | Operation failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let targetNetworkId = "networkId"; let inputDeviceId = 0; try { cooperate.activateCooperate(targetNetworkId, inputDeviceId, (error: BusinessError) => { if (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Start Keyboard mouse crossing success.`); }); } catch (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.activateCooperate11+ activateCooperate(targetNetworkId: string, inputDeviceId: number): Promise<void>; Starts screen hopping. This API uses a promise to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | --------------- | ------ | ---- | ------------------------ | | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping.| | inputDeviceId | number | Yes | Identifier of the input device for screen hopping. | **Return value** | Name | Description | | ------------------- | ------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | | 20900001 | Operation failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let targetNetworkId = "networkId"; let inputDeviceId = 0; try { cooperate.activateCooperate(targetNetworkId, inputDeviceId).then(() => { console.log(`Start Keyboard mouse crossing success.`); }, (error: BusinessError) => { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.deactivateCooperate11+ deactivateCooperate(isUnchained: boolean, callback: AsyncCallback<void>): void; Stops screen hopping. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------------------------- | ---- | ------------------------------------------------------------ | | 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.| | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.deactivateCooperate(false, (error: BusinessError) => { if (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Stop Keyboard mouse crossing success.`); }); } catch (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.deactivateCooperate11+ deactivateCooperate(isUnchained: boolean): Promise<void>; Stops screen hopping. This API uses a promise to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------- | ---- | ------------------------------------------------------------ | | 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.| **Return value** | Name | Description | | ------------------- | ------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.deactivateCooperate(false).then(() => { console.log(`Stop Keyboard mouse crossing success.`); }, (error: BusinessError) => { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.getCooperateSwitchState11+ getCooperateSwitchState(networkId: string, callback: AsyncCallback<boolean>): void; Obtains the screen hopping status of the target device. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | --------- | ---------------------------- | ---- | ------------------------------------------------------------ | | networkId | string | Yes | Descriptor of the target device for screen hopping. | | 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.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let deviceDescriptor = "networkId"; try { cooperate.getCooperateSwitchState(deviceDescriptor, (error: BusinessError, data: boolean) => { if (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Get the status success, data: ${JSON.stringify(data)}`); }); } catch (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.getCooperateSwitchState11+ getCooperateSwitchState(networkId: string): Promise<boolean>; Obtains the screen hopping status of the target device. This API uses a promise to return the result. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | --------- | ------ | ---- | ------------------------ | | networkId | string | Yes | Descriptor of the target device for screen hopping.| **Return value** | Parameters | Description | | ---------------------- | ------------------------------------------------------------ | | Promise<boolean> | Promise used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let deviceDescriptor = "networkId"; try { cooperate.getCooperateSwitchState(deviceDescriptor).then((data: boolean) => { console.log(`Get the status success, data: ${JSON.stringify(data)}`); }, (error: BusinessError) => { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## on('cooperateMessage')11+ on(type: 'cooperateMessage', callback: Callback<CooperateMessage>): void; Enables listening for screen hopping status change events. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------------- | ---- | ------------------------------------ | | type | string | Yes | Event type. The value is **cooperateMessage**. | | callback | Callback<[CooperateMessage](#cooperatemessage11)> | Yes | Callback used to return the result.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts function callback(msg: cooperate.CooperateMessage) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); return false; } try { cooperate.on('cooperateMessage', callback); } catch (error) { console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## off('cooperateMessage')11+ off(type: 'cooperateMessage', callback?: Callback<CooperateMessage>): void; Disables listening for screen hopping status change events. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | | type | string | Yes | Event type. The value is **cooperate**. | | 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.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts // Unregister a single callback. function callbackOn(msgOn: cooperate.CooperateMessage) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(msgOn)}`); return false; } function callbackOff(msgOff: cooperate.CooperateMessage) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(msgOff)}`); return false; } try { cooperate.on('cooperateMessage', callbackOn); cooperate.off('cooperateMessage', callbackOff); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ```ts // Unregister all callbacks. function callbackOn(msg: cooperate.CooperateMessage) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); return false; } try { cooperate.on('cooperateMessage', callbackOn); cooperate.off('cooperateMessage'); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## on('cooperateMouse')12+ on(type: 'cooperateMouse', networkId: string, callback: Callback<MouseLocation>): void; Registers a listener for the mouse cursor position of a device. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------------- | ---- | ------------------------------------ | | type | string | Yes | Event type, which is **'cooperateMouse'**. | | networkId| string | Yes | Descriptor of the target device. | | callback | Callback<[MouseLocation](#mouselocation12)> | Yes | Callback used to return the mouse cursor position of the device.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts function callback(data: cooperate.MouseLocation) { console.log('displayX:' + data.displayX + 'displayY:' + data.displayX + 'displayWidth:' + data.displayWidth + 'displayHeight:' + data.displayHeight ); } try { let networkId: string = 'Default'; cooperate.on('cooperateMouse', networkId, callback); } catch (error) { console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## off('cooperateMouse')12+ off(type: 'cooperateMouse', networkId: string, callback?: Callback<MouseLocation>): void; Unregisters the listener for the mouse cursor position of a device. **Required permissions**: ohos.permission.COOPERATE_MANAGER **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | | type | string | Yes | Event type, which is **'cooperateMouse'**. | | networkId| string | Yes | Descriptor of the target device. | | 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.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 201 | Permission denied. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts // Unregister a single callback. function callbackOn(data: cooperate.MouseLocation) { console.log('Register mouse location listener'); return false; } function callbackOff(data: cooperate.MouseLocation) { console.log('Unregister mouse location listener'); return false; } try { let networkId: string = 'Default'; cooperate.on('cooperateMouse', networkId, callbackOn); cooperate.off('cooperateMouse', networkId, callbackOff); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ```ts // Unregister all callbacks. function callbackOn(data: cooperate.MouseLocation) { console.log('Register mouse location listener'); } try { let networkId: string = 'Default'; cooperate.on('cooperateMouse', networkId, callbackOn); cooperate.off('cooperateMouse', networkId); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## CooperateMessage11+ Defines a screen hopping status change event. **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Readable| Writable| Description | | --------- | -------------- | ---- | ---- | ------------------------ | | networkId | string | Yes | No | Descriptor of the target device for screen hopping.| | state | CooperateState | Yes | No | Screen hopping status. | ## MouseLocation12+ Defines the mouse pointer position for screen hopping. **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Readable| Writable| Description | | --------- | -------------- | ---- | ---- | ------------------------ | | displayX | number | Yes | No | Position of the mouse pointer on the X coordinate of the screen.| | displayY | number | Yes | No | Position of the mouse pointer on the Y coordinate of the screen.| | displayWidth | number | Yes | No | Screen width. | | displayHeight | number | Yes | No | Screen height. | ## CooperateState11+ Screen hopping status. **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Readable| Writable| Description | | ------------------------------ | ------ | ---- | ---- | ---------------------- | | COOPERATE_PREPARE | number | Yes | No | The preparation for screen hopping is finished. | | COOPERATE_UNPREPARE | number | Yes | No | The preparation for screen hopping is cancelled.| | COOPERATE_ACTIVATE | number | Yes | No | Screen hopping starts. | | COOPERATE_ACTIVATE_SUCCESS | number | Yes | No | Starting screen hopping succeeds.| | COOPERATE_ACTIVATE_FAIL | number | Yes | No | Starting screen hopping fails.| | COOPERATE_DEACTIVATE_SUCCESS | number | Yes | No | Stopping screen hopping succeeds.| | COOPERATE_DEACTIVATE_FAIL | number | Yes | No | Stopping screen hopping fails.| | COOPERATE_SESSION_DISCONNECTED | number | Yes | No | The screen hopping session is disconnected.| | COOPERATE_ACTIVATE_FAILURE | number | Yes | No | Screen hopping fails to start.| | COOPERATE_DEACTIVATE_FAILURE | number | Yes | No | Screen hopping fails to stop.| ## MouseLocation12+ Represents the mouse cursor position. **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Readable| Writable| Description | | --------- | -------------- | ---- | ---- | ------------------------ | | displayX | number | Yes | No | X coordinate of the mouse cursor.| | displayY | number | Yes | No | Y coordinate of the mouse cursor.| | displayWidth | number | Yes | No | Width of the screen where the mouse cursor is located.| | displayHeight | number | Yes | No | Height of the screen where the mouse cursor is located.| ## cooperate.prepare(deprecated) prepare(callback: AsyncCallback<void>): void; Prepares for screen hopping. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.prepareCooperate](#cooperatepreparecooperate11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | ------------------------- | ---- | --------------------------- | | callback | AsyncCallback<void> | Yes|Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object. | **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.prepare((error: BusinessError) => { if (error) { console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Keyboard mouse crossing prepare success.`); }); } catch (error) { console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.prepare(deprecated) prepare(): Promise<void>; Prepares for screen hopping. This API uses a promise to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.prepareCooperate](#cooperatepreparecooperate11-1). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Return value** | Parameters | Description | | ------------------- | ------------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.prepare().then(() => { console.log(`Keyboard mouse crossing prepare success.`); }, (error: BusinessError) => { console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Keyboard mouse crossing prepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.unprepare(deprecated) unprepare(callback: AsyncCallback<void>): void; Cancels the preparation for screen hopping. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.unprepareCooperate](#cooperateunpreparecooperate11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ------------------------------------------ | | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.unprepare((error: BusinessError) => { if (error) { console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Keyboard mouse crossing unprepare success.`); }); } catch (error) { console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.unprepare(deprecated) unprepare(): Promise<void>; Cancels the preparation for screen hopping. This API uses a promise to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.unprepareCooperate](#cooperateunpreparecooperate11-1). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Return value** | Parameters | Description | | ------------------- | --------------------------------------------- | | Promise<void> | Promise that returns no value.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.unprepare().then(() => { console.log(`Keyboard mouse crossing unprepare success.`); }, (error: BusinessError) => { console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Keyboard mouse crossing unprepare failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.activate(deprecated) activate(targetNetworkId: string, inputDeviceId: number, callback: AsyncCallback<void>): void; Starts screen hopping. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.activateCooperate](#cooperateactivatecooperate11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------------- | ---- | ---------------------------- | | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | | inputDeviceId | number | Yes | Identifier of the input device for screen hopping.| | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message| | -------- | ---------------------------------------- | | 20900001 | Operation failed.| | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let targetNetworkId = "networkId"; let inputDeviceId = 0; try { cooperate.activate(targetNetworkId, inputDeviceId, (error: BusinessError) => { if (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Start Keyboard mouse crossing success.`); }); } catch (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.activate(deprecated) activate(targetNetworkId: string, inputDeviceId: number): Promise<void>; Starts screen hopping. This API uses a promise to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.activateCooperate](#cooperateactivatecooperate11-1). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------------- | ---- | ---------------------------- | | targetNetworkId | string | Yes | Descriptor of the target device for screen hopping. | | inputDeviceId | number | Yes | Identifier of the input device for screen hopping.| **Return value** | Name | Description | | ---------------------- | ------------------------------- | | Promise<void> | Promise that returns no value. | **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message| | -------- | ---------------------------------------- | | 20900001 | Operation failed. | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let targetNetworkId = "networkId"; let inputDeviceId = 0; try { cooperate.activate(targetNetworkId, inputDeviceId).then(() => { console.log(`Start Keyboard mouse crossing success.`); }, (error: BusinessError) => { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.deactivate(deprecated) deactivate(isUnchained: boolean, callback: AsyncCallback<void>): void; Stops screen hopping. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperatedeactivatecooperate11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------------- | ---- | ---------------------------- | | 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.| | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error object.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.deactivate(false, (error: BusinessError) => { if (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Stop Keyboard mouse crossing success.`); }); } catch (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.deactivate(deprecated) deactivate(isUnchained: boolean): Promise<void>; Stops screen hopping. This API uses a promise to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperatedeactivatecooperate11-1). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------- | ---- | ------------------ | | 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.| **Return value** | Name | Description | | -------- | ---------------------------- | | Promise<void> | Promise that returns no value. | **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | **Example** ```ts import { BusinessError } from '@ohos.base'; try { cooperate.deactivate(false).then(() => { console.log(`Stop Keyboard mouse crossing success.`); }, (error: BusinessError) => { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.getCrossingSwitchState(deprecated) getCrossingSwitchState(networkId: string, callback: AsyncCallback<boolean>): void; Obtains the screen hopping status of the target device. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.deactivateCooperate](#cooperategetcooperateswitchstate11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | --------- | ---- | ---------------------------- | | networkId | string | Yes | Descriptor of the target device for screen hopping. | | 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.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts import { BusinessError } from '@ohos.base'; let deviceDescriptor = "networkId"; try { cooperate.getCrossingSwitchState(deviceDescriptor, (error: BusinessError, data: boolean) => { if (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); return; } console.log(`Get the status success, data: ${JSON.stringify(data)}`); }); } catch (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## cooperate.getCrossingSwitchState(deprecated) getCrossingSwitchState(networkId: string): Promise<boolean>; Obtains the screen hopping status of the target device. This API uses a promise to return the result. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [cooperate.getCooperateSwitchState](#cooperategetcooperateswitchstate11-1). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | --------- | ---- | ---------------------------- | | networkId | string | Yes | Descriptor of the target device for screen hopping. | **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Return value** | Parameters | Description | | ------------------- | ------------------------------- | | Promise<boolean> | Promise used to return the result. The value **true** indicates that screen hopping is enabled, and the value **false** indicates the opposite.| **Example** ```ts import { BusinessError } from '@ohos.base'; let deviceDescriptor = "networkId"; try { cooperate.getCrossingSwitchState(deviceDescriptor).then((data: boolean) => { console.log(`Get the status success, data: ${JSON.stringify(data)}`); }, (error: BusinessError) => { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); }); } catch (error) { console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## on('cooperate')(deprecated) on(type: 'cooperate', callback: Callback<{ networkId: string, msg: CooperateMsg }>): void; Enables listening for screen hopping status change events. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [on('cooperateMessage')](#oncooperatemessage11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | ---------------------------- | | type | string | Yes | Event type. The value is **cooperate**.| | callback | Callback<{ networkId: string, msg: [CooperateMsg](#cooperatemsgdeprecated) }> | Yes | Callback used to return the result.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts function callback(networkId: string, msg: cooperate.CooperateMsg) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); return false; } try { cooperate.on('cooperate', callback); } catch (error) { console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## off('cooperate')(deprecated) off(type: 'cooperate', callback?: Callback<void>): void; Disables listening for screen hopping status change events. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [off('cooperateMessage')](#offcooperatemessage11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------------- | ---- | ---------------------------- | | type | string | Yes | Event type. The value is **cooperate**.| | callback | AsyncCallback<void> | No | Callback to be unregistered. If this parameter is not specified, all callbacks registered by the current application will be unregistered.| **Error codes** For details about the error codes, see [Screen Hopping Error Codes](errorcode-devicestatus.md). | ID| Error Message | | -------- | ----------------- | | 202 | Not system application. | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | **Example** ```ts // Unregister a single callback. function callbackOn(networkId: string, msg: cooperate.CooperateMsg) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); return false; } function callbackOff() { console.log(`Keyboard mouse crossing event`); return false; } try { cooperate.on('cooperate', callbackOn); cooperate.off('cooperate', callbackOff); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ```ts // Unregister all callbacks. function callbackOn(networkId: string, msg: cooperate.CooperateMsg) { console.log(`Keyboard mouse crossing event: ${JSON.stringify(networkId)}`); return false; } try { cooperate.on('cooperate', callbackOn); cooperate.off('cooperate'); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## CooperateMsg(deprecated) Represents a screen hopping message notification. > **NOTE** > > This API is deprecated since API version 10. You are advised to use [CooperateMessage](#cooperatemessage11). **System capability**: SystemCapability.Msdp.DeviceStatus.Cooperate | Name | Value | Description | | -------- | ----------------- | ----------------- | | COOPERATE_PREPARE | 0 | The preparation for screen hopping is finished. | | COOPERATE_UNPREPARE | 1 | The preparation for screen hopping is cancelled. | | COOPERATE_ACTIVATE | 2 | Screen hopping starts. | | COOPERATE_ACTIVATE_SUCCESS | 3 | Starting screen hopping succeeds.| | COOPERATE_ACTIVATE_FAIL | 4 | Starting screen hopping fails.| | COOPERATE_DEACTIVATE_SUCCESS | 5 | Stopping screen hopping succeeds.| | COOPERATE_DEACTIVATE_FAIL | 6 | Stopping screen hopping fails.| | COOPERATE_SESSION_DISCONNECTED | 7 | The screen hopping session is disconnected.|