• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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