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<Array<number>>): void 22 23获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。 24 25**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 26 27**参数**: 28 29| 参数名 | 类型 | 必填 | 说明 | 30| -------- | ---------------------------------------- | ---- | ---------------------------------------- | 31| callback | AsyncCallback<Array<number>> | 是 | 回调函数,异步返回所有输入设备的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<Array<number>> 52 53获取所有输入设备的id列表,使用Promise异步方式返回结果。 54 55**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 56 57**返回值**: 58 59| 参数 | 说明 | 60| ---------------------------------- | ------------------------------------------- | 61| Promise<Array<number>> | 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<InputDeviceData>): void 78 79获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。 80 81**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 82 83**参数**: 84 85| 参数名 | 类型 | 必填 | 说明 | 86| -------- | -------------------------------------------------------- | ---- | --------------------------------------- | 87| deviceId | number | 是 | 输入设备id。 | 88| callback | AsyncCallback<[InputDeviceData](#inputdevicedata)> | 是 | 回调函数,异步返回输入设备信息。 | 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<InputDeviceData> 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<[InputDeviceData](#inputdevicedata)> | 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<DeviceListener>): void 175 176监听输入设备的热插拔事件。 177 178**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 179 180**参数**: 181 182| 参数名 | 类型 | 必填 | 说明 | 183| -------- | ---------------------------------------- | ---- | ----------- | 184| type | string | 是 | 输入设备的事件【鼠标、键盘、触摸屏等】类型。 | 185| listener | Callback<[DeviceListener](#devicelistener9)> | 是 | 回调函数,异步上报输入设备热插拔事件。 | 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<DeviceListener>): void 214 215取消监听输入设备的热插拔事件。在应用退出前调用,取消监听。 216 217**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 218 219**参数**: 220 221| 参数名 | 类型 | 必填 | 说明 | 222| -------- | ---------------------------------------- | ---- | ----------- | 223| type | string | 是 | 输入设备的事件【鼠标、键盘、触摸屏等】类型。 | 224| listener | Callback<[DeviceListener](#devicelistener9)> | 否 | 取消监听的回调函数。 | 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<Array<number>>): 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<Array<number>> | 是 | 回调函数,异步返回所有输入设备的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<Array<number>> 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<Array<number>> | 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<InputDeviceData>): 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<[InputDeviceData](#inputdevicedata)> | 是 | 回调函数,异步返回输入设备信息。 | 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<InputDeviceData> 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<[InputDeviceData](#inputdevicedata)> | 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<KeyCode>, callback: AsyncCallback <Array<boolean>>): void 370 371获取输入设备是否支持指定的键码值,使用AsyncCallback异步方式返回结果。 372 373**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 374 375**参数**: 376 377| 参数名 | 类型 | 必填 | 说明 | 378| -------- | ----------------------------------------- | ---- | ------------------------------------------------------ | 379| deviceId | number | 是 | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 | 380| keys | Array[<KeyCode>](js-apis-keycode.md#keycode) | 是 | 需要查询的键码值,最多支持5个按键查询。 | 381| callback | AsyncCallback<Array<boolean>> | 是 | 回调函数,异步返回查询结果。 | 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<KeyCode>): Promise<Array<boolean>> 399 400获取输入设备是否支持指定的键码值,使用Promise异步方式返回结果。 401 402**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 403 404**参数**: 405 406| 参数名 | 类型 | 必填 | 说明 | 407| -------- | -------------------- | ---- | ------------------------------------------------------ | 408| deviceId | number | 是 | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 | 409| keys | Array[<KeyCode>](js-apis-keycode.md#keycode) | 是 | 需要查询的键码值,最多支持5个按键查询。 | 410 411**返回值**: 412 413| 参数 | 说明 | 414| ----------------------------------- | ------------------------------- | 415| Promise<Array<boolean>> | 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<KeyCode>): Array<boolean> 433 434获取输入设备是否支持指定的键码值。 435 436**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 437 438**参数**: 439 440| 参数名 | 类型 | 必填 | 说明 | 441| -------- | -------------------- | ---- | ------------------------------------------------------ | 442| deviceId | number | 是 | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 | 443| keys | Array[<KeyCode>](js-apis-keycode.md#keycode) | 是 | 需要查询的键码值,最多支持5个按键查询。 | 444 445**返回值**: 446 447| 参数 | 说明 | 448| ----------------------------------- | ------------------------------- | 449| Array<boolean> | 返回查询结果。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<KeyboardType>): void 466 467获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。 468 469**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 470 471**参数**: 472 473| 参数名 | 类型 | 必填 | 说明 | 474| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ | 475| deviceId | number | 是 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 | 476| callback | AsyncCallback<[KeyboardType](#keyboardtype9)> | 是 | 回调函数,异步返回查询结果。 | 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<KeyboardType> 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<[KeyboardType](#keyboardtype9)> | 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<void>): 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<void> | 是 | 回调函数。 | 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<void> 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<void> | 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<number>): void 630 631获取键盘按键的重复时延,使用AsyncCallback异步方式返回结果。 632 633**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 634 635**系统API**:此接口为系统接口。 636 637**参数**: 638 639| 参数名 | 类型 | 必填 | 说明 | 640| -------- | ------ | ---- | ------------------------------------------------------------ | 641| callback | AsyncCallback<number> | 是 | 回调函数,异步返回键盘按键重复延迟时间。 | 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<number> 662 663获取键盘按键的重复时延,使用Promise异步方式返回结果。 664 665**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 666 667**系统API**:此接口为系统接口。 668 669**返回值**: 670 671| 参数 | 说明 | 672| --------------------- | ------------------- | 673| Promise<number> | 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<void>): 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<void> | 是 | 回调函数。 | 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<void> 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<void> | 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<number>): void 757 758获取键盘按键的重复速率,使用AsyncCallback异步方式返回结果。 759 760**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 761 762**系统API**:此接口为系统接口。 763 764**参数**: 765 766| 参数名 | 类型 | 必填 | 说明 | 767| -------- | --------------------------- | ---- | -------------- | 768| callback | AsyncCallback<number> | 是 | 回调函数,异步返回键盘按键的重复速率。 | 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<number> 789 790获取键盘按键的重复速率,使用Promise异步方式返回结果。 791 792**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice 793 794**系统API**:此接口为系统接口。 795 796**返回值**: 797 798| 参数 | 说明 | 799| --------------------- | ------------------- | 800| Promise<number> | 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<[SourceType](#sourcetype9)> | 是 | 否 | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 | 836| axisRanges | Array<[AxisRange](#axisrange)> | 是 | 否 | 输入设备的轴信息。 | 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