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