# @ohos.multimodalInput.inputDevice (输入设备)(系统接口)
输入设备管理模块,用于监听输入设备连接和断开状态,查询输入设备相关信息。
> **说明**:
>
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 当前页面仅包含模块的系统接口,其他公开接口请参考[@ohos.multimodalInput.inputDevice (输入设备)](js-apis-inputdevice.md)。
## 导入模块
```js
import { inputDevice } from '@kit.InputKit';
```
## inputDevice.setKeyboardRepeatDelay10+
setKeyboardRepeatDelay(delay: number, callback: AsyncCallback<void>): void
设置键盘按键的重复时延,使用AsyncCallback异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| delay | number | 是 | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
| callback | AsyncCallback<void> | 是 | 回调函数。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.setKeyboardRepeatDelay(350, (error: Error) => {
if (error) {
console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Set keyboard repeat delay success`);
});
} catch (error) {
console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.setKeyboardRepeatDelay10+
setKeyboardRepeatDelay(delay: number): Promise<void>
设置键盘按键的重复时延,使用Promise异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------------------- |
| delay | number | 是 | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
**返回值**:
| 参数 | 说明 |
| ------------------- | ---------------- |
| Promise<void> | Promise对象。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.setKeyboardRepeatDelay(350).then(() => {
console.log(`Set keyboard repeat delay success`);
});
} catch (error) {
console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.getKeyboardRepeatDelay10+
getKeyboardRepeatDelay(callback: AsyncCallback<number>): void
获取键盘按键的重复时延,使用AsyncCallback异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback<number> | 是 | 回调函数,异步返回键盘按键重复延迟时间。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.getKeyboardRepeatDelay((error: Error, delay: Number) => {
if (error) {
console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Get keyboard repeat delay success`);
});
} catch (error) {
console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.getKeyboardRepeatDelay10+
getKeyboardRepeatDelay(): Promise<number>
获取键盘按键的重复时延,使用Promise异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**返回值**:
| 参数 | 说明 |
| --------------------- | ------------------- |
| Promise<number> | Promise实例,异步返回键盘按键的重复时延。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.getKeyboardRepeatDelay().then((delay: Number) => {
console.log(`Get keyboard repeat delay success`);
});
} catch (error) {
console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.setKeyboardRepeatRate10+
setKeyboardRepeatRate(rate: number, callback: AsyncCallback<void>): void
设置键盘按键的重复速率,使用AsyncCallback异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| rate | number | 是 | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
| callback | AsyncCallback<void> | 是 | 回调函数。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.setKeyboardRepeatRate(60, (error: Error) => {
if (error) {
console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Set keyboard repeat rate success`);
});
} catch (error) {
console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.setKeyboardRepeatRate10+
setKeyboardRepeatRate(rate: number): Promise<void>
设置键盘按键的重复速率,使用Promise异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------------------- |
| rate | number | 是 | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
**返回值**:
| 参数 | 说明 |
| ------------------- | ---------------- |
| Promise<void> | Promise对象。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.setKeyboardRepeatRate(60).then(() => {
console.log(`Set keyboard repeat rate success`);
});
} catch (error) {
console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.getKeyboardRepeatRate10+
getKeyboardRepeatRate(callback: AsyncCallback<number>): void
获取键盘按键的重复速率,使用AsyncCallback异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | -------------- |
| callback | AsyncCallback<number> | 是 | 回调函数,异步返回键盘按键的重复速率。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.getKeyboardRepeatRate((error: Error, rate: Number) => {
if (error) {
console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Get keyboard repeat rate success`);
});
} catch (error) {
console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.getKeyboardRepeatRate10+
getKeyboardRepeatRate(): Promise<number>
获取键盘按键的重复速率,使用Promise异步方式返回结果。
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**返回值**:
| 参数 | 说明 |
| --------------------- | ------------------- |
| Promise<number> | Promise实例,异步返回键盘按键的重复速率。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| ---- | --------------------- |
| 202 | SystemAPI permission error |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
**示例**:
```js
try {
inputDevice.getKeyboardRepeatRate().then((rate: Number) => {
console.log(`Get keyboard repeat rate success`);
});
} catch (error) {
console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
## inputDevice.setInputDeviceEnabled18+
setInputDeviceEnabled(deviceId: number, enabled: boolean): Promise<void>
设置输入设备的开关状态。以触摸屏为例:关闭时,点击触摸屏设备不响应;开启时,可正常操作触摸屏。
**需要权限**:ohos.permission.INPUT_DEVICE_CONTROLLER
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
**系统API**:此接口为系统接口。
**参数**:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------- | ---- | ------------------------- |
| deviceId | number | 是 | 目标设备Id。 |
| enabled | boolean | 是 | true:开启输入设备输入;false:关闭输入设备输入。 |
**错误码**:
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[模块错误码](errorcode-inputdevice.md)。
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 201 | Permission denied. |
| 202 | Not system application. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
| 3900001 | The specified device does not exist. |
**示例**:
```js
try {
inputDevice.setInputDeviceEnabled(0, true).then(() => {
console.info(`Set input device enable success`);
});
} catch (error) {
console.info(`Set input device enable error`);
}
```