• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimodalInput.inputDevice (输入设备)
2
3
4输入设备管理模块,用于监听输入设备连接和断开状态,查询输入设备相关信息。
5
6
7> **说明**:
8>
9> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10
11
12## 导入模块
13
14
15```js
16import inputDevice from '@ohos.multimodalInput.inputDevice';
17```
18
19## inputDevice.getDeviceList<sup>9+</sup>
20
21getDeviceList(callback: AsyncCallback&lt;Array&lt;number&gt;&gt;): void
22
23获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
24
25**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
26
27**参数**:
28
29| 参数名     | 类型                                     | 必填 | 说明                                     |
30| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
31| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是   | 回调函数,异步返回所有输入设备的id列表。 |
32
33**示例**:
34
35```js
36try {
37  inputDevice.getDeviceList((error: Error, ids: Array<Number>) => {
38    if (error) {
39      console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
40      return;
41    }
42    console.log(`Device id list: ${JSON.stringify(ids)}`);
43  });
44} catch (error) {
45  console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
46}
47```
48
49## inputDevice.getDeviceList<sup>9+</sup>
50
51getDeviceList(): Promise&lt;Array&lt;number&gt;&gt;
52
53获取所有输入设备的id列表,使用Promise异步方式返回结果。
54
55**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
56
57**返回值**:
58
59| 参数                               | 说明                                        |
60| ---------------------------------- | ------------------------------------------- |
61| Promise&lt;Array&lt;number&gt;&gt; | Promise对象,异步返回所有输入设备的id列表。 |
62
63**示例**:
64
65```js
66try {
67  inputDevice.getDeviceList().then((ids: Array<Number>) => {
68    console.log(`Device id list: ${JSON.stringify(ids)}`);
69  });
70} catch (error) {
71  console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
72}
73```
74
75## inputDevice.getDeviceInfo<sup>9+</sup>
76
77getDeviceInfo(deviceId: number, callback: AsyncCallback&lt;InputDeviceData&gt;): void
78
79获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
80
81**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
82
83**参数**:
84
85| 参数名     | 类型                                                     | 必填 | 说明                                    |
86| -------- | -------------------------------------------------------- | ---- | --------------------------------------- |
87| deviceId | number                                                   | 是   | 输入设备id。                  |
88| callback | AsyncCallback&lt;[InputDeviceData](#inputdevicedata)&gt; | 是   | 回调函数,异步返回输入设备信息。 |
89
90**示例**:
91
92```js
93// 获取输入设备id为1的设备信息。
94try {
95  inputDevice.getDeviceInfo(1, (error: Error, deviceData: inputDevice.InputDeviceData) => {
96    if (error) {
97      console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
98      return;
99    }
100    console.log(`Device info: ${JSON.stringify(deviceData)}`);
101  });
102} catch (error) {
103  console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
104}
105```
106
107## inputDevice.getDeviceInfo<sup>9+</sup>
108
109getDeviceInfo(deviceId: number): Promise&lt;InputDeviceData&gt;
110
111获取指定输入设备的信息,使用Promise异步方式返回结果。
112
113**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
114
115**参数**:
116
117| 参数名     | 类型   | 必填 | 说明                   |
118| -------- | ------ | ---- | ---------------------- |
119| deviceId | number | 是   | 输入设备id。 |
120
121**返回值**:
122
123| 参数                                               | 说明                            |
124| -------------------------------------------------- | ------------------------------- |
125| Promise&lt;[InputDeviceData](#inputdevicedata)&gt; | Promise对象,异步返回输入设备信息。 |
126
127**示例**:
128
129```js
130// 获取输入设备id为1的设备信息。
131try {
132  inputDevice.getDeviceInfo(1).then((deviceData: inputDevice.InputDeviceData) => {
133    console.log(`Device info: ${JSON.stringify(deviceData)}`);
134  });
135} catch (error) {
136  console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
137}
138```
139
140## inputDevice.getDeviceInfoSync<sup>10+</sup>
141
142getDeviceInfoSync(deviceId: number): InputDeviceData
143
144获取指定输入设备的信息。
145
146**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
147
148**参数**:
149
150| 参数名     | 类型   | 必填 | 说明                   |
151| -------- | ------ | ---- | ---------------------- |
152| deviceId | number | 是   | 输入设备id。 |
153
154**返回值**:
155
156| 参数                                               | 说明                            |
157| -------------------------------------------------- | ------------------------------- |
158| [InputDeviceData](#inputdevicedata) | 返回输入设备信息。 |
159
160**示例**:
161
162```js
163// 获取输入设备id为1的设备信息。
164try {
165  let deviceData: inputDevice.InputDeviceData = inputDevice.getDeviceInfoSync(1)
166  console.log(`Device info: ${JSON.stringify(deviceData)}`)
167} catch (error) {
168  console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`)
169}
170```
171
172## inputDevice.on<sup>9+</sup>
173
174on(type: "change", listener: Callback&lt;DeviceListener&gt;): void
175
176监听输入设备的热插拔事件。
177
178**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
179
180**参数**:
181
182| 参数名       | 类型                                       | 必填   | 说明          |
183| -------- | ---------------------------------------- | ---- | ----------- |
184| type     | string                                   | 是    | 输入设备的事件【鼠标、键盘、触摸屏等】类型。 |
185| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 是    | 回调函数,异步上报输入设备热插拔事件。 |
186
187**示例**:
188
189```js
190let isPhysicalKeyboardExist = true;
191try {
192  inputDevice.on("change", (data: inputDevice.DeviceListener) => {
193    console.log(`Device event info: ${JSON.stringify(data)}`);
194    inputDevice.getKeyboardType(data.deviceId, (err: Error, type: inputDevice.KeyboardType) => {
195      console.log("The keyboard type is: " + type);
196      if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
197        // 监听物理键盘已连接。
198        isPhysicalKeyboardExist = true;
199      } else if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
200        // 监听物理键盘已断开。
201        isPhysicalKeyboardExist = false;
202      }
203    });
204  });
205  // 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
206} catch (error) {
207  console.log(`Get device info failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
208}
209```
210
211## inputDevice.off<sup>9+</sup>
212
213off(type: "change", listener?: Callback&lt;DeviceListener&gt;): void
214
215取消监听输入设备的热插拔事件。在应用退出前调用,取消监听。
216
217**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
218
219**参数**:
220
221| 参数名       | 类型                                       | 必填   | 说明          |
222| -------- | ---------------------------------------- | ---- | ----------- |
223| type     | string                                   | 是    | 输入设备的事件【鼠标、键盘、触摸屏等】类型。  |
224| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 否    | 取消监听的回调函数。 |
225
226**示例**:
227
228```js
229function callback(data: inputDevice.DeviceListener) {
230  console.log(`Report device event info: ${JSON.stringify(data, [`type`, `deviceId`])}`);
231};
232
233try {
234  inputDevice.on("change", callback);
235} catch (error) {
236  console.log(`Listen device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
237}
238
239// 取消指定的监听。
240try {
241  inputDevice.off("change", callback);
242} catch (error) {
243  console.log(`Cancel listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
244}
245
246// 取消所有监听。
247try {
248  inputDevice.off("change");
249} catch (error) {
250  console.log(`Cancel all listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
251}
252```
253
254## inputDevice.getDeviceIds<sup>(deprecated)</sup>
255
256getDeviceIds(callback: AsyncCallback&lt;Array&lt;number&gt;&gt;): void
257
258获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
259
260> 从API version 9 开始不再维护,建议使用[inputDevice.getDeviceList](#inputdevicegetdevicelist9)代替。
261
262**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
263
264**参数**:
265
266| 参数名     | 类型                                     | 必填 | 说明                                     |
267| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
268| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是   | 回调函数,异步返回所有输入设备的id列表。 |
269
270**示例**:
271
272```js
273inputDevice.getDeviceIds((error: Error, ids: Array<Number>) => {
274  if (error) {
275    console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
276    return;
277  }
278  console.log(`Device id list: ${JSON.stringify(ids)}`);
279});
280```
281
282## inputDevice.getDeviceIds<sup>(deprecated)</sup>
283
284getDeviceIds(): Promise&lt;Array&lt;number&gt;&gt;
285
286获取所有输入设备的id列表,使用Promise异步方式返回结果。
287
288> 从API version 9 开始不再维护,建议使用[inputDevice.getDeviceList](#inputdevicegetdevicelist9)代替。
289
290**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
291
292**返回值**:
293
294| 参数                               | 说明                                        |
295| ---------------------------------- | ------------------------------------------- |
296| Promise&lt;Array&lt;number&gt;&gt; | Promise对象,异步返回所有输入设备的id列表。 |
297
298**示例**:
299
300```js
301inputDevice.getDeviceIds().then((ids: Array<Number>) => {
302  console.log(`Device id list: ${JSON.stringify(ids)}`);
303});
304```
305
306## inputDevice.getDevice<sup>(deprecated)</sup>
307
308getDevice(deviceId: number, callback: AsyncCallback&lt;InputDeviceData&gt;): void
309
310获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
311
312> 从API version 9 开始不再维护,建议使用[inputDevice.getDeviceInfo](#inputdevicegetdeviceinfo9)代替。
313
314**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
315
316**参数**:
317
318| 参数名     | 类型                                                     | 必填 | 说明                             |
319| -------- | -------------------------------------------------------- | ---- | -------------------------------- |
320| deviceId | number                                                   | 是   | 输入设备id。                     |
321| callback | AsyncCallback&lt;[InputDeviceData](#inputdevicedata)&gt; | 是   | 回调函数,异步返回输入设备信息。 |
322
323**示例**:
324
325```js
326// 获取输入设备id为1的设备信息。
327inputDevice.getDevice(1, (error: Error, deviceData: inputDevice.InputDeviceData) => {
328  if (error) {
329    console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
330    return;
331  }
332  console.log(`Device info: ${JSON.stringify(deviceData)}`);
333});
334```
335
336## inputDevice.getDevice<sup>(deprecated)</sup>
337
338getDevice(deviceId: number): Promise&lt;InputDeviceData&gt;
339
340获取指定输入设备的信息,使用Promise异步方式返回结果。
341
342> 从API version 9 开始不再维护,建议使用[inputDevice.getDeviceInfo](#inputdevicegetdeviceinfo9)代替。
343
344**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
345
346**参数**:
347
348| 参数名     | 类型   | 必填 | 说明         |
349| -------- | ------ | ---- | ------------ |
350| deviceId | number | 是   | 输入设备id。 |
351
352**返回值**:
353
354| 参数                                               | 说明                                |
355| -------------------------------------------------- | ----------------------------------- |
356| Promise&lt;[InputDeviceData](#inputdevicedata)&gt; | Promise对象,异步返回输入设备信息。 |
357
358**示例**:
359
360```js
361// 获取输入设备id为1的设备信息。
362inputDevice.getDevice(1).then((deviceData: inputDevice.InputDeviceData) => {
363  console.log(`Device info: ${JSON.stringify(deviceData)}`);
364});
365```
366
367## inputDevice.supportKeys<sup>9+</sup>
368
369supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: AsyncCallback &lt;Array&lt;boolean&gt;&gt;): void
370
371获取输入设备是否支持指定的键码值,使用AsyncCallback异步方式返回结果。
372
373**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
374
375**参数**:
376
377| 参数名     | 类型                                      | 必填 | 说明                                                   |
378| -------- | ----------------------------------------- | ---- | ------------------------------------------------------ |
379| deviceId | number                                    | 是   | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
380| keys     | Array[&lt;KeyCode&gt;](js-apis-keycode.md#keycode)                      | 是   | 需要查询的键码值,最多支持5个按键查询。                |
381| callback | AsyncCallback&lt;Array&lt;boolean&gt;&gt; | 是   | 回调函数,异步返回查询结果。                           |
382
383**示例**:
384
385```js
386// 查询id为1的输入设备对于17、22和2055按键的支持情况。
387try {
388  inputDevice.supportKeys(1, [17, 22, 2055], (error: Error, supportResult: Array<Boolean>) => {
389    console.log(`Query result: ${JSON.stringify(supportResult)}`);
390  });
391} catch (error) {
392  console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
393}
394```
395
396## inputDevice.supportKeys<sup>9+</sup>
397
398supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;): Promise&lt;Array&lt;boolean&gt;&gt;
399
400获取输入设备是否支持指定的键码值,使用Promise异步方式返回结果。
401
402**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
403
404**参数**:
405
406| 参数名     | 类型                 | 必填 | 说明                                                   |
407| -------- | -------------------- | ---- | ------------------------------------------------------ |
408| deviceId | number               | 是   | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
409| keys     | Array[&lt;KeyCode&gt;](js-apis-keycode.md#keycode)  | 是   | 需要查询的键码值,最多支持5个按键查询。                |
410
411**返回值**:
412
413| 参数                                | 说明                            |
414| ----------------------------------- | ------------------------------- |
415| Promise&lt;Array&lt;boolean&gt;&gt; | Promise对象,异步返回查询结果。 |
416
417**示例**:
418
419```js
420// 查询id为1的输入设备对于17、22和2055按键的支持情况。
421try {
422  inputDevice.supportKeys(1, [17, 22, 2055]).then((supportResult: Array<Boolean>) => {
423    console.log(`Query result: ${JSON.stringify(supportResult)}`);
424  });
425} catch (error) {
426  console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
427}
428```
429
430## inputDevice.supportKeysSync<sup>10+</sup>
431
432supportKeysSync(deviceId: number, keys: Array&lt;KeyCode&gt;): Array&lt;boolean&gt;
433
434获取输入设备是否支持指定的键码值。
435
436**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
437
438**参数**:
439
440| 参数名     | 类型                 | 必填 | 说明                                                   |
441| -------- | -------------------- | ---- | ------------------------------------------------------ |
442| deviceId | number               | 是   | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
443| keys     | Array[&lt;KeyCode&gt;](js-apis-keycode.md#keycode)  | 是   | 需要查询的键码值,最多支持5个按键查询。                |
444
445**返回值**:
446
447| 参数                                | 说明                            |
448| ----------------------------------- | ------------------------------- |
449| Array&lt;boolean&gt; | 返回查询结果。true表示支持,false表示不支持。 |
450
451**示例**:
452
453```js
454// 查询id为1的输入设备对于17、22和2055按键的支持情况。
455try {
456  let supportResult: Array<Boolean> = inputDevice.supportKeysSync(1, [17, 22, 2055])
457  console.log(`Query result: ${JSON.stringify(supportResult)}`)
458} catch (error) {
459  console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`)
460}
461```
462
463## inputDevice.getKeyboardType<sup>9+</sup>
464
465getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void
466
467获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。
468
469**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
470
471**参数**:
472
473| 参数名     | 类型                                                | 必填 | 说明                                                         |
474| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
475| deviceId | number                                              | 是   | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
476| callback | AsyncCallback&lt;[KeyboardType](#keyboardtype9)&gt; | 是   | 回调函数,异步返回查询结果。                                 |
477
478**示例**:
479
480```js
481// 查询id为1的输入设备的键盘类型。
482try {
483  inputDevice.getKeyboardType(1, (error: Error, type: Number) => {
484    if (error) {
485      console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
486      return;
487    }
488    console.log(`Keyboard type: ${JSON.stringify(type)}`);
489  });
490} catch (error) {
491  console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
492}
493```
494
495## inputDevice.getKeyboardType<sup>9+</sup>
496
497getKeyboardType(deviceId: number): Promise&lt;KeyboardType&gt;
498
499获取输入设备的键盘类型,使用Promise异步方式返回结果。
500
501**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
502
503**参数**:
504
505| 参数名     | 类型   | 必填 | 说明                                                         |
506| -------- | ------ | ---- | ------------------------------------------------------------ |
507| deviceId | number | 是   | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
508
509**返回值**:
510
511| 参数                                          | 说明                            |
512| --------------------------------------------- | ------------------------------- |
513| Promise&lt;[KeyboardType](#keyboardtype9)&gt; | Promise对象,异步返回查询结果。 |
514
515**示例**:
516
517```js
518// 示例查询设备id为1的设备键盘类型。
519try {
520  inputDevice.getKeyboardType(1).then((type: Number) => {
521    console.log(`Keyboard type: ${JSON.stringify(type)}`);
522  });
523} catch (error) {
524  console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
525}
526```
527
528## inputDevice.getKeyboardTypeSync<sup>10+</sup>
529
530getKeyboardTypeSync(deviceId: number): KeyboardType
531
532获取输入设备的键盘类型。
533
534**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
535
536**参数**:
537
538| 参数名     | 类型   | 必填 | 说明                                                         |
539| -------- | ------ | ---- | ------------------------------------------------------------ |
540| deviceId | number | 是   | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
541
542**返回值**:
543
544| 参数                                          | 说明                            |
545| --------------------------------------------- | ------------------------------- |
546| [KeyboardType](#keyboardtype9) | 返回查询结果。 |
547
548**示例**:
549
550```js
551// 示例查询设备id为1的设备键盘类型。
552try {
553  let type: number = inputDevice.getKeyboardTypeSync(1)
554  console.log(`Keyboard type: ${JSON.stringify(type)}`)
555} catch (error) {
556  console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`)
557}
558```
559
560## inputDevice.setKeyboardRepeatDelay<sup>10+</sup>
561
562setKeyboardRepeatDelay(delay: number, callback: AsyncCallback&lt;void&gt;): void
563
564设置键盘按键的重复时延,使用AsyncCallback异步方式返回结果。
565
566**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
567
568**系统API**:此接口为系统接口。
569
570**参数**:
571
572| 参数名     | 类型   | 必填 | 说明                                                         |
573| -------- | ------ | ---- | ------------------------------------------------------------ |
574| delay    | number                    | 是    | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
575| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数。 |
576
577**示例**:
578
579```js
580try {
581  inputDevice.setKeyboardRepeatDelay(350, (error: Error) => {
582    if (error) {
583      console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
584      return;
585    }
586    console.log(`Set keyboard repeat delay success`);
587  });
588} catch (error) {
589  console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
590}
591```
592
593## inputDevice.setKeyboardRepeatDelay<sup>10+</sup>
594
595setKeyboardRepeatDelay(delay: number): Promise&lt;void&gt;
596
597设置键盘按键的重复时延,使用Promise异步方式返回结果。
598
599**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
600
601**系统API**:此接口为系统接口。
602
603**参数**:
604
605| 参数名    | 类型     | 必填   | 说明                                  |
606| ----- | ------ | ---- | ----------------------------------- |
607| delay | number | 是    | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
608
609**返回值**:
610
611| 参数                  | 说明               |
612| ------------------- | ---------------- |
613| Promise&lt;void&gt; | Promise对象。 |
614
615**示例**:
616
617```js
618try {
619  inputDevice.setKeyboardRepeatDelay(350).then(() => {
620    console.log(`Set keyboard repeat delay success`);
621  });
622} catch (error) {
623  console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
624}
625```
626
627## inputDevice.getKeyboardRepeatDelay<sup>10+</sup>
628
629getKeyboardRepeatDelay(callback: AsyncCallback&lt;number&gt;): void
630
631获取键盘按键的重复时延,使用AsyncCallback异步方式返回结果。
632
633**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
634
635**系统API**:此接口为系统接口。
636
637**参数**:
638
639| 参数名     | 类型   | 必填 | 说明                                                         |
640| -------- | ------ | ---- | ------------------------------------------------------------ |
641| callback   | AsyncCallback&lt;number&gt;                    | 是    | 回调函数,异步返回键盘按键重复延迟时间。 |
642
643**示例**:
644
645```js
646try {
647  inputDevice.getKeyboardRepeatDelay((error: Error, delay: Number) => {
648    if (error) {
649      console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
650      return;
651    }
652    console.log(`Get keyboard repeat delay success`);
653  });
654} catch (error) {
655  console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
656}
657```
658
659## inputDevice.getKeyboardRepeatDelay<sup>10+</sup>
660
661getKeyboardRepeatDelay(): Promise&lt;number&gt;
662
663获取键盘按键的重复时延,使用Promise异步方式返回结果。
664
665**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
666
667**系统API**:此接口为系统接口。
668
669**返回值**:
670
671| 参数                    | 说明                  |
672| --------------------- | ------------------- |
673| Promise&lt;number&gt; | Promise实例,异步返回键盘按键的重复时延。 |
674
675**示例**:
676
677```js
678try {
679  inputDevice.getKeyboardRepeatDelay().then((delay: Number) => {
680    console.log(`Get keyboard repeat delay success`);
681  });
682} catch (error) {
683  console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
684}
685```
686
687## inputDevice.setKeyboardRepeatRate<sup>10+</sup>
688
689setKeyboardRepeatRate(rate: number, callback: AsyncCallback&lt;void&gt;): void
690
691设置键盘按键的重复速率,使用AsyncCallback异步方式返回结果。
692
693**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
694
695**系统API**:此接口为系统接口。
696
697**参数**:
698
699| 参数名     | 类型   | 必填 | 说明                                                         |
700| -------- | ------ | ---- | ------------------------------------------------------------ |
701| rate    | number                    | 是    | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
702| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数。 |
703
704**示例**:
705
706```js
707try {
708  inputDevice.setKeyboardRepeatRate(60, (error: Error) => {
709    if (error) {
710      console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
711      return;
712    }
713    console.log(`Set keyboard repeat rate success`);
714  });
715} catch (error) {
716  console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
717}
718```
719
720## inputDevice.setKeyboardRepeatRate<sup>10+</sup>
721
722setKeyboardRepeatRate(rate: number): Promise&lt;void&gt;
723
724设置键盘按键的重复速率,使用Promise异步方式返回结果。
725
726**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
727
728**系统API**:此接口为系统接口。
729
730**参数**:
731
732| 参数名    | 类型     | 必填   | 说明                                  |
733| ----- | ------ | ---- | ----------------------------------- |
734| rate | number | 是    | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
735
736**返回值**:
737
738| 参数                  | 说明               |
739| ------------------- | ---------------- |
740| Promise&lt;void&gt; | Promise对象。 |
741
742**示例**:
743
744```js
745try {
746  inputDevice.setKeyboardRepeatRate(60).then(() => {
747    console.log(`Set keyboard repeat rate success`);
748  });
749} catch (error) {
750  console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
751}
752```
753
754## inputDevice.getKeyboardRepeatRate<sup>10+</sup>
755
756getKeyboardRepeatRate(callback: AsyncCallback&lt;number&gt;): void
757
758获取键盘按键的重复速率,使用AsyncCallback异步方式返回结果。
759
760**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
761
762**系统API**:此接口为系统接口。
763
764**参数**:
765
766| 参数名       | 类型                          | 必填   | 说明             |
767| -------- | --------------------------- | ---- | -------------- |
768| callback | AsyncCallback&lt;number&gt; | 是    | 回调函数,异步返回键盘按键的重复速率。 |
769
770**示例**:
771
772```js
773try {
774  inputDevice.getKeyboardRepeatRate((error: Error, rate: Number) => {
775    if (error) {
776      console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
777      return;
778    }
779    console.log(`Get keyboard repeat rate success`);
780  });
781} catch (error) {
782  console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
783}
784```
785
786## inputDevice.getKeyboardRepeatRate<sup>10+</sup>
787
788getKeyboardRepeatRate(): Promise&lt;number&gt;
789
790获取键盘按键的重复速率,使用Promise异步方式返回结果。
791
792**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
793
794**系统API**:此接口为系统接口。
795
796**返回值**:
797
798| 参数                    | 说明                  |
799| --------------------- | ------------------- |
800| Promise&lt;number&gt; | Promise实例,异步返回键盘按键的重复速率。 |
801
802**示例**:
803
804```js
805try {
806  inputDevice.getKeyboardRepeatRate().then((rate: Number) => {
807    console.log(`Get keyboard repeat rate success`);
808  });
809} catch (error) {
810  console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
811}
812```
813
814## DeviceListener<sup>9+</sup>
815
816输入设备热插拔的描述信息。
817
818**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
819
820| 名称        | 类型   | 可读   | 可写   | 说明      |
821| --------- | ------ | ---- | ---- | ------- |
822| type     | [ChangedType](#changedtype9) | 是 | 否 | 输入设备插入或者移除。|
823| deviceId | number                      | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
824
825## InputDeviceData
826
827输入设备的描述信息。
828
829**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
830
831| 名称        | 类型   | 可读   | 可写   | 说明      |
832| --------- | ------ | ---- | ---- | ------- |
833| id                   | number                                 | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
834| name                 | string                                 | 是 | 否 | 输入设备的名字。                                             |
835| sources              | Array&lt;[SourceType](#sourcetype9)&gt; | 是 | 否 | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |
836| axisRanges           | Array&lt;[AxisRange](#axisrange)&gt;  | 是 | 否 | 输入设备的轴信息。                                           |
837| bus<sup>9+</sup>     | number                                 | 是 | 否 | 输入设备的总线类型。                                         |
838| product<sup>9+</sup> | number                                 | 是 | 否 | 输入设备的产品信息。                                         |
839| vendor<sup>9+</sup>  | number                                 | 是 | 否 | 输入设备的厂商信息。                                         |
840| version<sup>9+</sup> | number                                 | 是 | 否 | 输入设备的版本信息。                                         |
841| phys<sup>9+</sup>    | string                                 | 是 | 否 | 输入设备的物理地址。                                         |
842| uniq<sup>9+</sup>    | string                                 | 是 | 否 | 输入设备的唯一标识。                                         |
843
844## AxisType<sup>9+</sup>
845
846输入设备的轴类型。
847
848**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
849
850| 名称        | 类型   | 可读   | 可写   | 说明      |
851| --------- | ------ | ---- | ---- | ------- |
852| touchmajor  | string | 是 | 否 | 表示touchmajor轴。  |
853| touchminor  | string | 是 | 否 | 表示touchminor轴。  |
854| toolminor   | string | 是 | 否 | 表示toolminor轴。   |
855| toolmajor   | string | 是 | 否 | 表示toolmajor轴。   |
856| orientation | string | 是 | 否 | 表示orientation轴。 |
857| pressure    | string | 是 | 否 | 表示pressure轴。    |
858| x           | string | 是 | 否 | 表示x轴。           |
859| y           | string | 是 | 否 | 表示y轴。           |
860| null        | string | 是 | 否 | 无。              |
861
862## AxisRange
863
864输入设备的轴信息。
865
866**系统能力**: SystemCapability.MultimodalInput.Input.InputDevice
867
868| 名称        | 类型   | 可读   | 可写   | 说明      |
869| --------- | ------ | ---- | ---- | ------- |
870| source                  | [SourceType](#sourcetype9) | 是 | 否 | 轴的输入源类型。 |
871| axis                    | [AxisType](#axistype9)    | 是 | 否 | 轴的类型。    |
872| max                     | number                    | 是 | 否 | 轴的最大值。   |
873| min                     | number                    | 是 | 否 | 轴的最小值。   |
874| fuzz<sup>9+</sup>       | number                    | 是 | 否 | 轴的模糊值。   |
875| flat<sup>9+</sup>       | number                    | 是 | 否 | 轴的基准值。   |
876| resolution<sup>9+</sup> | number                    | 是 | 否 | 轴的分辨率。   |
877
878## SourceType<sup>9+</sup>
879
880轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的输入源就是鼠标。
881
882**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
883
884| 名称        | 类型   | 可读   | 可写   | 说明      |
885| --------- | ------ | ---- | ---- | ------- |
886| keyboard    | string | 是 | 否 | 表示输入设备是键盘。  |
887| touchscreen | string | 是 | 否 | 表示输入设备是触摸屏。 |
888| mouse       | string | 是 | 否 | 表示输入设备是鼠标。  |
889| trackball   | string | 是 | 否 | 表示输入设备是轨迹球。 |
890| touchpad    | string | 是 | 否 | 表示输入设备是触摸板。 |
891| joystick    | string | 是 | 否 | 表示输入设备是操纵杆。 |
892
893## ChangedType<sup>9+</sup>
894
895定义监听设备热插拔事件。
896
897**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
898
899| 名称        | 类型   | 可读   | 可写   | 说明      |
900| --------- | ------ | ---- | ---- | ------- |
901| add    | string | 是 | 否 | 表示输入设备插入。 |
902| remove | string | 是 | 否 | 表示输入设备移除。 |
903
904## KeyboardType<sup>9+</sup>
905
906定义键盘输入设备的类型。
907
908**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
909
910| 名称                  | 值    | 说明        |
911| ------------------- | ---- | --------- |
912| NONE                | 0    | 表示无按键设备。  |
913| UNKNOWN             | 1    | 表示未知按键设备。 |
914| ALPHABETIC_KEYBOARD | 2    | 表示全键盘设备。  |
915| DIGITAL_KEYBOARD    | 3    | 表示小键盘设备。  |
916| HANDWRITING_PEN     | 4    | 表示手写笔设备。  |
917| REMOTE_CONTROL      | 5    | 表示遥控器设备。  |
918