1e41f4b71Sopenharmony_ci# @ohos.multimodalInput.inputDeviceCooperate (键鼠穿越)(系统接口) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci键鼠穿越功能模块,提供两台或多台设备组网协同后键鼠共享能力,实现键鼠输入设备的跨设备协同操作。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci>- 从API Version 10开始,该接口不再维护,推荐使用新接口[@ohos.cooperate](../apis-distributedservice-kit/js-apis-devicestatus-cooperate-sys.md) (键鼠穿越)。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci>- 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10e41f4b71Sopenharmony_ci> 11e41f4b71Sopenharmony_ci>- 本模块接口均为系统接口。 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci## 导入模块 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci```ts 16e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 17e41f4b71Sopenharmony_ci``` 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## inputDeviceCooperate.enable 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_cienable(enable: boolean, callback: AsyncCallback<void>): void 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci开启、关闭键鼠穿越,使用AsyncCallback异步方式返回结果。 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MultimodalInput.Input.Cooperator 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**参数**: 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 30e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | --------------------------- | 31e41f4b71Sopenharmony_ci| enable | boolean | 是 | 键鼠穿越使能状态。 | 32e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 |回调函数,异步返回键鼠穿越开启、关闭结果。 | 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**错误码**: 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[ohos.devicestatus错误码](../apis-distributedservice-kit/errorcode-devicestatus.md)。 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 39e41f4b71Sopenharmony_ci| -------- | -----------------| 40e41f4b71Sopenharmony_ci| 401 | Parameter error. | 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci**示例**: 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci```ts 46e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 47e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_citry { 50e41f4b71Sopenharmony_ci inputDeviceCooperate.enable(true, (error: BusinessError) => { 51e41f4b71Sopenharmony_ci if (error) { 52e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 53e41f4b71Sopenharmony_ci return; 54e41f4b71Sopenharmony_ci } 55e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable success.`); 56e41f4b71Sopenharmony_ci }); 57e41f4b71Sopenharmony_ci} catch (error) { 58e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 59e41f4b71Sopenharmony_ci} 60e41f4b71Sopenharmony_ci``` 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci## inputDeviceCooperate.enable 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_cienable(enable: boolean): Promise<void> 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci开启、关闭键鼠穿越,使用Promise异步方式返回结果。 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MultimodalInput.Input.Cooperator 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci**参数**: 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 74e41f4b71Sopenharmony_ci| --------- | ------- | ---- | ------------------------------------------------------------------- | 75e41f4b71Sopenharmony_ci| enable | boolean | 是 | 键鼠穿越使能状态。 | 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**返回值**: 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci| 参数 | 说明 | 80e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 81e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,异步返回键鼠穿越开启、关闭结果。 | 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci**错误码**: 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 88e41f4b71Sopenharmony_ci| -------- | -----------------| 89e41f4b71Sopenharmony_ci| 401 | Parameter error. | 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci**示例**: 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci```ts 94e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 95e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_citry { 98e41f4b71Sopenharmony_ci inputDeviceCooperate.enable(true).then(() => { 99e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable success.`); 100e41f4b71Sopenharmony_ci }, (error: BusinessError) => { 101e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 102e41f4b71Sopenharmony_ci }); 103e41f4b71Sopenharmony_ci} catch (error) { 104e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing enable failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 105e41f4b71Sopenharmony_ci} 106e41f4b71Sopenharmony_ci``` 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci## inputDeviceCooperate.start 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_cistart(sinkDeviceDescriptor: string, srcInputDeviceId: number, callback: AsyncCallback\<void>): void 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci启动键鼠穿越,使用AsyncCallback异步方式返回结果。 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ci**参数**: 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 119e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---------------------------- | 120e41f4b71Sopenharmony_ci| sinkDeviceDescriptor | string | 是 | 键鼠穿越目标设备描述符。 | 121e41f4b71Sopenharmony_ci| srcInputDeviceId | number | 是 | 键鼠穿越待穿越外设标识符。 | 122e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,异步返回键鼠穿越启动、停止状态。| 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci**错误码**: 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[ohos.multimodalinput错误码](errorcode-multimodalinput.md)。 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 129e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 130e41f4b71Sopenharmony_ci| 401 | Parameter error. | 131e41f4b71Sopenharmony_ci| 4400001 | Incorrect descriptor for the target device. | 132e41f4b71Sopenharmony_ci| 4400002 | Screen hop failed. | 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**示例**: 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci```ts 137e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 138e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_cilet sinkDeviceDescriptor = "descriptor"; 141e41f4b71Sopenharmony_cilet srcInputDeviceId = 0; 142e41f4b71Sopenharmony_citry { 143e41f4b71Sopenharmony_ci inputDeviceCooperate.start(sinkDeviceDescriptor, srcInputDeviceId, (error: BusinessError) => { 144e41f4b71Sopenharmony_ci if (error) { 145e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 146e41f4b71Sopenharmony_ci return; 147e41f4b71Sopenharmony_ci } 148e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing success.`); 149e41f4b71Sopenharmony_ci }); 150e41f4b71Sopenharmony_ci} catch (error) { 151e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 152e41f4b71Sopenharmony_ci} 153e41f4b71Sopenharmony_ci``` 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci## inputDeviceCooperate.start 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_cistart(sinkDeviceDescriptor: string, srcInputDeviceId: number): Promise\<void> 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci启动键鼠穿越,使用Promise异步方式返回结果。 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MultimodalInput.Input.Cooperator 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci**参数**: 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 166e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---------------------------- | 167e41f4b71Sopenharmony_ci| sinkDeviceDescriptor | string | 是 | 键鼠穿越目标设备描述符。 | 168e41f4b71Sopenharmony_ci| srcInputDeviceId | number | 是 | 键鼠穿越待穿越外设标识符。 | 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci**返回值**: 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci| 参数名 | 说明 | 175e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------- | 176e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,异步返回键鼠穿越启动、关闭结果。 | 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci**错误码**: 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[ohos.multimodalinput错误码](errorcode-multimodalinput.md)。 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 183e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 184e41f4b71Sopenharmony_ci| 401 | Parameter error. | 185e41f4b71Sopenharmony_ci| 4400001 | Incorrect descriptor for the target device. | 186e41f4b71Sopenharmony_ci| 4400002 | Screen hop failed. | 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci**示例**: 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci```ts 191e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 192e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_cilet sinkDeviceDescriptor = "descriptor"; 195e41f4b71Sopenharmony_cilet srcInputDeviceId = 0; 196e41f4b71Sopenharmony_citry { 197e41f4b71Sopenharmony_ci inputDeviceCooperate.start(sinkDeviceDescriptor, srcInputDeviceId).then(() => { 198e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing success.`); 199e41f4b71Sopenharmony_ci }, (error: BusinessError) => { 200e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 201e41f4b71Sopenharmony_ci }); 202e41f4b71Sopenharmony_ci} catch (error) { 203e41f4b71Sopenharmony_ci console.log(`Start Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 204e41f4b71Sopenharmony_ci} 205e41f4b71Sopenharmony_ci``` 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci## inputDeviceCooperate.stop 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void>): void 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci停止键鼠穿越,使用AsyncCallback异步方式返回结果。 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci**参数**: 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 218e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---------------------------- | 219e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,异步返回停止键鼠穿越结果。 | 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci**错误码**: 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 226e41f4b71Sopenharmony_ci| -------- | ----------------- | 227e41f4b71Sopenharmony_ci| 401 | Parameter error. | 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci**示例**: 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci```ts 232e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 233e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_citry { 236e41f4b71Sopenharmony_ci inputDeviceCooperate.stop((error: BusinessError) => { 237e41f4b71Sopenharmony_ci if (error) { 238e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 239e41f4b71Sopenharmony_ci return; 240e41f4b71Sopenharmony_ci } 241e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing success.`); 242e41f4b71Sopenharmony_ci }); 243e41f4b71Sopenharmony_ci} catch (error) { 244e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 245e41f4b71Sopenharmony_ci} 246e41f4b71Sopenharmony_ci``` 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci## inputDeviceCooperate.stop 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_cistop(): Promise\<void> 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci停止键鼠穿越,使用Promise异步方式返回结果。 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci**返回值**: 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_ci| 参数名 | 说明 | 259e41f4b71Sopenharmony_ci| -------- | ---------------------------- | 260e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,异步返回停止键鼠穿越结果。 | 261e41f4b71Sopenharmony_ci 262e41f4b71Sopenharmony_ci**示例**: 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci```ts 265e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 266e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 267e41f4b71Sopenharmony_ci 268e41f4b71Sopenharmony_citry { 269e41f4b71Sopenharmony_ci inputDeviceCooperate.stop().then(() => { 270e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing success.`); 271e41f4b71Sopenharmony_ci }, (error: BusinessError) => { 272e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 273e41f4b71Sopenharmony_ci }); 274e41f4b71Sopenharmony_ci} catch (error) { 275e41f4b71Sopenharmony_ci console.log(`Stop Keyboard mouse crossing failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 276e41f4b71Sopenharmony_ci} 277e41f4b71Sopenharmony_ci``` 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci## inputDeviceCooperate.getState 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_cigetState(deviceDescriptor: string, callback: AsyncCallback<{ state: boolean }>): void 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci获取键鼠穿越开关的状态,使用AsyncCallback异步方式返回结果。 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 286e41f4b71Sopenharmony_ci 287e41f4b71Sopenharmony_ci**参数**: 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 290e41f4b71Sopenharmony_ci| -------- | --------- | ---- | ---------------------------- | 291e41f4b71Sopenharmony_ci| deviceDescriptor | string | 是 | 键鼠穿越目标设备描述符。 | 292e41f4b71Sopenharmony_ci| callback | AsyncCallback<{ state: boolean }> | 是 | 回调函数,异步返回键鼠穿越开关状态。 | 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci**错误码**: 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 299e41f4b71Sopenharmony_ci| -------- | ----------------- | 300e41f4b71Sopenharmony_ci| 401 | Parameter error. | 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci**示例**: 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci```ts 306e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 307e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_cilet deviceDescriptor = "descriptor"; 310e41f4b71Sopenharmony_citry { 311e41f4b71Sopenharmony_ci inputDeviceCooperate.getState(deviceDescriptor, (error: BusinessError, data: object) => { 312e41f4b71Sopenharmony_ci if (error) { 313e41f4b71Sopenharmony_ci console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 314e41f4b71Sopenharmony_ci return; 315e41f4b71Sopenharmony_ci } 316e41f4b71Sopenharmony_ci console.log(`Get the status success, data: ${JSON.stringify(data)}`); 317e41f4b71Sopenharmony_ci }); 318e41f4b71Sopenharmony_ci} catch (error) { 319e41f4b71Sopenharmony_ci console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 320e41f4b71Sopenharmony_ci} 321e41f4b71Sopenharmony_ci``` 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci## inputDeviceCooperate.getState 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_cigetState(deviceDescriptor: string): Promise<{ state: boolean }> 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci获取键鼠穿越开关的状态,使用Promise异步方式返回结果。 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci**参数**: 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 334e41f4b71Sopenharmony_ci| -------- | --------- | ---- | ---------------------------- | 335e41f4b71Sopenharmony_ci| deviceDescriptor | string | 是 | 键鼠穿越目标设备描述符。 | 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci**返回值**: 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci| 参数 | 说明 | 340e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 341e41f4b71Sopenharmony_ci| Promise<{ state: boolean }>| Promise对象,异步返回键鼠穿越开关状态。 | 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci**错误码**: 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 348e41f4b71Sopenharmony_ci| -------- | ----------------- | 349e41f4b71Sopenharmony_ci| 401 | Parameter error. | 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci 352e41f4b71Sopenharmony_ci**示例**: 353e41f4b71Sopenharmony_ci 354e41f4b71Sopenharmony_ci```ts 355e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 356e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 357e41f4b71Sopenharmony_ci 358e41f4b71Sopenharmony_cilet deviceDescriptor = "descriptor"; 359e41f4b71Sopenharmony_citry { 360e41f4b71Sopenharmony_ci inputDeviceCooperate.getState(deviceDescriptor).then((data: object) => { 361e41f4b71Sopenharmony_ci console.log(`Get the status success, data: ${JSON.stringify(data)}`); 362e41f4b71Sopenharmony_ci }, (error: BusinessError) => { 363e41f4b71Sopenharmony_ci console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 364e41f4b71Sopenharmony_ci }); 365e41f4b71Sopenharmony_ci} catch (error) { 366e41f4b71Sopenharmony_ci console.log(`Get the status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 367e41f4b71Sopenharmony_ci} 368e41f4b71Sopenharmony_ci``` 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci## on('cooperation') 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_cion(type: 'cooperation', callback: AsyncCallback<{ deviceDescriptor: string, eventMsg: EventMsg }>): void 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci注册监听键鼠穿越状态。 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci**参数**: 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 381e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---------------------------- | 382e41f4b71Sopenharmony_ci| type | string | 是 | 注册类型,取值”cooperation“。 | 383e41f4b71Sopenharmony_ci| callback | AsyncCallback<{ deviceDescriptor: string, eventMsg: [EventMsg](#eventmsg) }> | 是 | 回调函数,异步返回键鼠穿越事件。 | 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci**错误码**: 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 390e41f4b71Sopenharmony_ci| -------- | ----------------- | 391e41f4b71Sopenharmony_ci| 401 | Parameter error. | 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci**示例**: 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci```ts 397e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_cifunction callback(msg: object) { 400e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); 401e41f4b71Sopenharmony_ci return false; 402e41f4b71Sopenharmony_ci} 403e41f4b71Sopenharmony_citry { 404e41f4b71Sopenharmony_ci inputDeviceCooperate.on('cooperation', callback); 405e41f4b71Sopenharmony_ci} catch (error) { 406e41f4b71Sopenharmony_ci console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 407e41f4b71Sopenharmony_ci} 408e41f4b71Sopenharmony_ci``` 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci## off('cooperation') 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_cioff(type: 'cooperation', callback?: AsyncCallback\<void>): void 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci关闭监听键鼠穿越状态。 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci**参数**: 419e41f4b71Sopenharmony_ci 420e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 421e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ---------------------------- | 422e41f4b71Sopenharmony_ci| type | string | 是 | 注册类型,取值“cooperation”。 | 423e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 否 | 需要取消注册的回调函数,若无此参数,则取消当前应用注册的所有回调函数。 | 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ci**错误码**: 426e41f4b71Sopenharmony_ci 427e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 430e41f4b71Sopenharmony_ci| -------- | ----------------- | 431e41f4b71Sopenharmony_ci| 401 | Parameter error. | 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci**示例**: 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci```ts 437e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci// 取消注册单个回调函数 440e41f4b71Sopenharmony_cifunction callbackOn(msg: object) { 441e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); 442e41f4b71Sopenharmony_ci return false; 443e41f4b71Sopenharmony_ci} 444e41f4b71Sopenharmony_cifunction callbackOff() { 445e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing event`); 446e41f4b71Sopenharmony_ci return false; 447e41f4b71Sopenharmony_ci} 448e41f4b71Sopenharmony_citry { 449e41f4b71Sopenharmony_ci inputDeviceCooperate.on('cooperation', callbackOn); 450e41f4b71Sopenharmony_ci inputDeviceCooperate.off("cooperation", callbackOff); 451e41f4b71Sopenharmony_ci} catch (error) { 452e41f4b71Sopenharmony_ci console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 453e41f4b71Sopenharmony_ci} 454e41f4b71Sopenharmony_ci``` 455e41f4b71Sopenharmony_ci```ts 456e41f4b71Sopenharmony_ciimport { inputDeviceCooperate } from '@kit.InputKit'; 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_ci// 取消注册所有回调函数 459e41f4b71Sopenharmony_cifunction callback(msg: object) { 460e41f4b71Sopenharmony_ci console.log(`Keyboard mouse crossing event: ${JSON.stringify(msg)}`); 461e41f4b71Sopenharmony_ci return false; 462e41f4b71Sopenharmony_ci} 463e41f4b71Sopenharmony_citry { 464e41f4b71Sopenharmony_ci inputDeviceCooperate.on('cooperation', callback); 465e41f4b71Sopenharmony_ci inputDeviceCooperate.off("cooperation"); 466e41f4b71Sopenharmony_ci} catch (error) { 467e41f4b71Sopenharmony_ci console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 468e41f4b71Sopenharmony_ci} 469e41f4b71Sopenharmony_ci``` 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci## EventMsg 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci键鼠穿越事件。 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MultimodalInput.Input.Cooperator 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 478e41f4b71Sopenharmony_ci| -------- | --------- | ----------------- | 479e41f4b71Sopenharmony_ci| MSG_COOPERATE_INFO_START | 200 | 键鼠穿越消息,表示键鼠穿越开始。 | 480e41f4b71Sopenharmony_ci| MSG_COOPERATE_INFO_SUCCESS | 201 | 键鼠穿越消息,表示键鼠穿越成功。 | 481e41f4b71Sopenharmony_ci| MSG_COOPERATE_INFO_FAIL | 202 | 键鼠穿越消息,表示键鼠穿越失败。 | 482e41f4b71Sopenharmony_ci| MSG_COOPERATE_STATE_ON | 500 | 键鼠穿越状态,表示键鼠穿越状态开启。 | 483e41f4b71Sopenharmony_ci| MSG_COOPERATE_STATE_OFF | 501 | 键鼠穿越状态,表示键鼠穿越状态关闭。 | 484