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