@ohos.multimodalInput.inputDevice (Input Device)
The inputDevice module implements input device management functions such as listening for the connection and disconnection of input devices and querying input device information such as the device name.
NOTE
- The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
Modules to Import
import { inputDevice } from '@kit.InputKit';
inputDevice.getDeviceList9+
getDeviceList(callback: AsyncCallback<Array<number>>): void
Obtains the IDs of all input devices. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| callback | AsyncCallback<Array<number>> | Yes | Callback used to return the IDs of all input devices. id is the unique ID of an input device. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
try {
inputDevice.getDeviceList((error: BusinessError, ids: Array<number>) => {
if (error) {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.info(`Device id list: ${JSON.stringify(ids)}`);
});
} catch (error) {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getDeviceList9+
getDeviceList(): Promise<Array<number>>
Obtains the IDs of all input devices. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Return value
| Type | Description |
|---|---|
| Promise<Array<number>> | Promise used to return the IDs of all input devices. id is the unique ID of an input device. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
try {
inputDevice.getDeviceList().then((ids: Array<number>) => {
console.info(`Device id list: ${JSON.stringify(ids)}`);
}).catch((error: BusinessError) => {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
});
} catch (error) {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getDeviceInfo9+
getDeviceInfo(deviceId: number, callback: AsyncCallback<InputDeviceData>): void
Obtains information about the specified input device. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| callback | AsyncCallback<InputDeviceData> | Yes | Callback used to return information about the input device, including the device ID, name, supported source, physical address, version information, and product information. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Obtain the name of the device whose ID is 1.
try {
inputDevice.getDeviceInfo(1, (error: BusinessError, deviceData: inputDevice.InputDeviceData) => {
if (error) {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.info(`Device info: ${JSON.stringify(deviceData)}`);
});
} catch (error) {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getDeviceInfo9+
getDeviceInfo(deviceId: number): Promise<InputDeviceData>
Obtains the information about the input device with the specified ID. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
Return value
| Type | Description |
|---|---|
| Promise<InputDeviceData> | Promise used to return information about the input device, including device ID, name, supported source, physical address, version information, and product information. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Obtain the name of the device whose ID is 1.
try {
inputDevice.getDeviceInfo(1).then((deviceData: inputDevice.InputDeviceData) => {
console.info(`Device info: ${JSON.stringify(deviceData)}`);
}).catch((error: BusinessError) => {
console.error(`Get device info failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
});
} catch (error) {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getDeviceInfoSync10+
getDeviceInfoSync(deviceId: number): InputDeviceData
Obtains information about the specified input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
Return value
| Type | Description |
|---|---|
| InputDeviceData | Information about the input device, including the device ID, name, supported source, physical address, version information, and product information. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Obtain the name of the device whose ID is 1.
try {
let deviceData: inputDevice.InputDeviceData = inputDevice.getDeviceInfoSync(1);
console.info(`Device info: ${JSON.stringify(deviceData)}`);
} catch (error) {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.on('change')9+
on(type: "change", listener: Callback<DeviceListener>): void
Enables listening for device hot swap events. When performing this operation, you need to connect to external devices such as a mouse, keyboard, and touchscreen. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | string | Yes | Event type. This field has a fixed value of change. |
| listener | Callback<DeviceListener> | Yes | Listener for events of the input device. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const DOMAIN = 0x0000;
@Entry
@Component
struct Index {
@State isPhysicalKeyboardExist: boolean = false;
@State message: string = "Click to obtain the device list and monitor device hot-plug events";
keyboards: Map<number, inputDevice.KeyboardType> = new Map();
build() {
RelativeContainer() {
Column() {
Text(this.message)
.onClick(() => {
try {
// 1. Obtain the list of input devices and check whether a physical keyboard is connected.
inputDevice.getDeviceList().then(data => {
for (let i = 0; i < data.length; ++i) {
inputDevice.getKeyboardType(data[i]).then(type => {
if (type === inputDevice.KeyboardType.ALPHABETIC_KEYBOARD) {
// The physical keyboard is connected.
this.isPhysicalKeyboardExist = true;
this.keyboards.set(data[i], type);
}
});
}
});
// 2. Listen for device hot-swap events.
inputDevice.on("change", (data) => {
hilog.info(DOMAIN, 'InputDevice', `Device event info: %{public}s`, JSON.stringify(data));
inputDevice.getKeyboardType(data.deviceId).then((type) => {
hilog.info(DOMAIN, 'InputDevice', 'The keyboard type is: %{public}d', type);
if (type === inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type === 'add') {
// The physical keyboard is inserted.
this.isPhysicalKeyboardExist = true;
this.keyboards.set(data.deviceId, type);
}
});
if (this.keyboards.get(data.deviceId) === inputDevice.KeyboardType.ALPHABETIC_KEYBOARD &&
data.type === 'remove') {
// The physical keyboard is removed.
this.isPhysicalKeyboardExist = false;
this.keyboards.delete(data.deviceId);
}
});
this.message = "Device monitoring enabled successfully"
} catch (error) {
hilog.error(DOMAIN, 'InputDevice', `Execute failed, error: %{public}s`,
JSON.stringify(error, ["code", "message"]));
this.message = `Failed to enable device monitoring. Click to retry. Error message:${JSON.stringify(error,
["code", "message"])}`
}
})
}
}
}
}
inputDevice.off('change')9+
off(type: "change", listener?: Callback<DeviceListener>): void
Disables listening for device hot swap events. This API is called before the application exits. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | string | Yes | Event type. This field has a fixed value of change. |
| listener | Callback<DeviceListener> | No | Callback to unregister. If this parameter is left unspecified, listening for hot swap events of all input devices will be canceled. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
let callback = (data: inputDevice.DeviceListener) => {
console.info(`Report device event info: ${JSON.stringify(data, [`type`, `deviceId`])}`);
};
try {
inputDevice.on("change", callback);
} catch (error) {
console.error(`Listen device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
// Disable this listener.
try {
inputDevice.off("change", callback);
} catch (error) {
console.error(`Cancel listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
// Disable all listeners.
try {
inputDevice.off("change");
} catch (error) {
console.error(`Cancel all listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getDeviceIds(deprecated)
getDeviceIds(callback: AsyncCallback<Array<number>>): void
Obtains the IDs of all input devices. This API uses an asynchronous callback to return the result.
NOTE
This API is supported since API version 8 and deprecated since API version 9. Use inputDevice.getDeviceList instead.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| callback | AsyncCallback<Array<number>> | Yes | Callback used to return the IDs of all input devices. id is the unique ID of an input device. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
inputDevice.getDeviceIds((error: BusinessError, ids: Array<number>) => {
if (error) {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.info(`Device id list: ${JSON.stringify(ids)}`);
});
})
}
}
}
inputDevice.getDeviceIds(deprecated)
getDeviceIds(): Promise<Array<number>>
Obtains the IDs of all input devices. This API uses a promise to return the result.
NOTE
This API is supported since API version 8 and deprecated since API version 9. Use inputDevice.getDeviceList instead.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Return value
| Type | Description |
|---|---|
| Promise<Array<number>> | Promise used to return the IDs of all input devices. id is the unique ID of an input device. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
inputDevice.getDeviceIds().then((ids: Array<number>) => {
console.info(`Device id list: ${JSON.stringify(ids)}`);
}).catch((error: BusinessError) => {
console.error(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
})
})
}
}
}
inputDevice.getDevice(deprecated)
getDevice(deviceId: number, callback: AsyncCallback<InputDeviceData>): void
Obtains the information about the input device with the specified ID. This API uses an asynchronous callback to return the result.
NOTE
This API is supported since API version 8 and deprecated since API version 9. Use inputDevice.getDeviceInfo instead.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| callback | AsyncCallback<InputDeviceData> | Yes | Callback used to return information about the input device, including device ID, name, supported source, physical address, version information, and product information. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Obtain the name of the device whose ID is 1.
inputDevice.getDevice(1, (error: BusinessError, deviceData: inputDevice.InputDeviceData) => {
if (error) {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.info(`Device info: ${JSON.stringify(deviceData)}`);
});
})
}
}
}
inputDevice.getDevice(deprecated)
getDevice(deviceId: number): Promise<InputDeviceData>
Obtains the information about the input device with the specified ID. This API uses a promise to return the result.
NOTE
This API is supported since API version 8 and deprecated since API version 9. Use inputDevice.getDeviceInfo instead.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
Return value
| Type | Description |
|---|---|
| Promise<InputDeviceData> | Promise used to return information about the input device, including device ID, name, supported source, physical address, version information, and product information. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Obtain the name of the device whose ID is 1.
inputDevice.getDevice(1).then((deviceData: inputDevice.InputDeviceData) => {
console.info(`Device info: ${JSON.stringify(deviceData)}`);
}).catch((error: BusinessError) => {
console.error(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
})
})
}
}
}
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array<KeyCode>, callback: AsyncCallback <Array<boolean>>): void
Checks whether the input device supports the specified keys. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| keys | Array<KeyCode> | Yes | Keys to be queried. A maximum of five keys can be specified. |
| callback | AsyncCallback<Array<boolean>> | Yes | Callback used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Check whether the input device whose ID is 1 supports keys 17, 22, and 2055.
try {
inputDevice.supportKeys(1, [17, 22, 2055], (error: BusinessError, supportResult: Array<Boolean>) => {
console.info(`Query result: ${JSON.stringify(supportResult)}`);
});
} catch (error) {
console.error(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array<KeyCode>): Promise<Array<boolean>>
Checks whether the input device supports the specified keys. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| keys | Array<KeyCode> | Yes | Keys to be queried. A maximum of five keys can be specified. |
Return value
| Type | Description |
|---|---|
| Promise<Array<boolean>> | Promise used to return the result. The value true indicates that the keycodes are supported, and the value false indicates the opposite. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Check whether the input device whose ID is 1 supports keys 17, 22, and 2055.
try {
inputDevice.supportKeys(1, [17, 22, 2055]).then((supportResult: Array<Boolean>) => {
console.info(`Query result: ${JSON.stringify(supportResult)}`);
}).catch((error: BusinessError) => {
console.error(`Query support Keys failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
});
} catch (error) {
console.error(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.supportKeysSync10+
supportKeysSync(deviceId: number, keys: Array<KeyCode>): Array<boolean>
Checks whether the input device supports the specified keys.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| keys | Array<KeyCode> | Yes | Keys to be queried. A maximum of five keys can be specified. |
Return value
| Type | Description |
|---|---|
| Array<boolean> | Result indicating whether the input device supports the keycode value. The value true indicates yes, and the value false indicates no. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Check whether the input device whose ID is 1 supports keys 17, 22, and 2055.
try {
let supportResult: Array<Boolean> = inputDevice.supportKeysSync(1, [17, 22, 2055])
console.info(`Query result: ${JSON.stringify(supportResult)}`)
} catch (error) {
console.error(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`)
}
})
}
}
}
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number, callback: AsyncCallback<KeyboardType>): void
Obtains the keyboard type of the input device, such as full keyboard and numeric keypad. This API uses an asynchronous callback to return the result. The keyboard type of the input device is subject to the result returned by the API.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| callback | AsyncCallback<KeyboardType> | Yes | Callback used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Query the keyboard type of the input device whose ID is 1.
try {
inputDevice.getKeyboardType(1, (error: BusinessError, type: inputDevice.KeyboardType) => {
if (error) {
console.error(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.info(`Keyboard type: ${JSON.stringify(type)}`);
});
} catch (error) {
console.error(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number): Promise<KeyboardType>
Obtains the keyboard type of an input device. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
Return value
| Type | Description |
|---|---|
| Promise<KeyboardType> | Promise used to return the result. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Query the keyboard type of the input device whose ID is 1.
try {
inputDevice.getKeyboardType(1).then((type: inputDevice.KeyboardType) => {
console.info(`Keyboard type: ${JSON.stringify(type)}`);
}).catch((error: BusinessError) => {
console.error(`Get keyboard type failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
})
} catch (error) {
console.error(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.getKeyboardTypeSync10+
getKeyboardTypeSync(deviceId: number): KeyboardType
Obtains the keyboard type of the input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| deviceId | number | Yes | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
Return value
| Type | Description |
|---|---|
| KeyboardType | Keyboard type. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { inputDevice } from '@kit.InputKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
// Query the keyboard type of the input device whose ID is 1.
try {
let type: inputDevice.KeyboardType = inputDevice.getKeyboardTypeSync(1)
console.info(`Keyboard type: ${JSON.stringify(type)}`)
} catch (error) {
console.error(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`)
}
})
}
}
}
inputDevice.isFunctionKeyEnabled15+
isFunctionKeyEnabled(functionKey: FunctionKey): Promise<boolean>
Checks whether the specified function key (for example, CapsLock) is enabled. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| functionKey | FunctionKey | Yes | Type of the function key. |
Return value
| Type | Description |
|---|---|
| Promise<boolean> | Promise used to return the result. The value true indicates that the function key is enabled, and the value false indicates the opposite. |
Error codes
For details about the error codes, see Universal Error Codes and Input Device Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
| 3900002 | There is currently no keyboard device connected. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
try {
inputDevice.isFunctionKeyEnabled(inputDevice.FunctionKey.CAPS_LOCK).then((state: boolean) => {
console.info(`capslock state: ${JSON.stringify(state)}`);
}).catch((error: BusinessError) => {
console.error(`Get capslock state failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
})
} catch (error) {
console.error(`Failed to get capslock state, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
})
}
}
}
inputDevice.setFunctionKeyEnabled15+
setFunctionKeyEnabled(functionKey: FunctionKey, enabled: boolean): Promise<void>
Specifies whether to enable a function key (for example, CapsLock). This API uses a promise to return the result.
Required permissions: ohos.permission.INPUT_KEYBOARD_CONTROLLER
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| functionKey | FunctionKey | Yes | Type of the function key. |
| enabled | boolean | Yes | Status of the function key. The value true indicates that the function key is enabled, and the value false indicates the opposite. |
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and Input Device Error Codes.
| ID | Error Message |
|---|---|
| 201 | Permission denied. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed. |
| 3900002 | There is currently no keyboard device connected. |
| 3900003 | It is prohibited for non-input applications. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
try {
inputDevice.setFunctionKeyEnabled(inputDevice.FunctionKey.CAPS_LOCK, true).then(() => {
console.info(`Set capslock state success`);
}).catch((error: BusinessError) => {
console.error(`Set capslock state failed, error=${JSON.stringify(error)}`);
});
} catch (error) {
console.error(`Set capslock enable error`);
}
})
}
}
}
inputDevice.getIntervalSinceLastInput14+
getIntervalSinceLastInput(): Promise<number>
Obtains the interval (including the device sleep time) elapsed since the last system input event. This API uses a promise to return the result.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
Return value
| Type | Description |
|---|---|
| Promise<number> | Promise used to return the interval since the last system input event, in μs. |
Example
import { inputDevice } from '@kit.InputKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
build() {
RelativeContainer() {
Text()
.onClick(() => {
inputDevice.getIntervalSinceLastInput().then((timeInterval: number) => {
console.info(`Interval since last input: ${JSON.stringify(timeInterval)}`);
}).catch((error: BusinessError) => {
console.error(`Get interval since last input failed, error: ${JSON.stringify(error)}`);
})
})
}
}
}
DeviceListener9+
Provides hot swap information about an input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| type | ChangedType | No | No | Device change type, which indicates whether an input device is inserted or removed. |
| deviceId | number | No | No | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
InputDeviceData
Provides information about an input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| id | number | No | No | Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID may change. |
| name | string | No | No | Name of the input device. |
| sources | Array<SourceType> | No | No | Input sources supported by the input device, including the keyboard, mouse, touchscreen, trackball, touchpad, and joystick. |
| axisRanges | Array<AxisRange> | No | No | Axis information of the input device. |
| bus9+ | number | No | No | Bus type of the input device. By default, the bus type reported by the input device prevails. |
| product9+ | number | No | No | Product information of the input device. |
| vendor9+ | number | No | No | Vendor information of the input device. |
| version9+ | number | No | No | Version information of the input device. |
| phys9+ | string | No | No | Physical address of the input device. |
| uniq9+ | string | No | No | Unique ID of the input device. |
| isVirtual23+ | boolean | No | Yes | Whether the input device is a virtual device. The value true indicates that the device is a virtual device, and the value false indicates that the device is a non-virtual device. |
| isLocal23+ | boolean | No | Yes | Whether the input device is a local device. The value true indicates that the device is a local device, and the value false indicates that the device is a non-local device. |
AxisType9+
type AxisType = 'touchmajor' | 'touchminor' | 'orientation' | 'x' | 'y' | 'pressure' | 'toolminor' | 'toolmajor' | 'null'
Defines the axis type of an input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Type | Description |
|---|---|
| 'touchmajor' | Major axis of the elliptical touching area. |
| 'touchminor' | Minor axis of the elliptical touching area. |
| 'toolminor' | Minor axis of the tool area. |
| 'toolmajor' | Major axis of the tool area. |
| 'orientation' | Orientation axis. |
| 'pressure' | Pressure axis. |
| 'x' | Horizontal axis. |
| 'y' | Vertical axis. |
| 'null' | None. |
AxisRange
Defines the axis range of an input device.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| source | SourceType | No | No | Input sources supported by the input device, including the keyboard, mouse, touchscreen, trackball, touchpad, and joystick. |
| axis | AxisType | No | No | Axis type of an input device. |
| max | number | No | No | Maximum value of the axis. |
| min | number | No | No | Minimum value of the axis. |
| fuzz9+ | number | No | No | Fuzzy value of the axis. |
| flat9+ | number | No | No | Benchmark value of the axis. |
| resolution9+ | number | No | No | Resolution of the axis. |
SourceType9+
type SourceType = 'keyboard' | 'mouse' | 'touchpad' | 'touchscreen' | 'joystick' | 'trackball'
Input sources supported by the input device, including the keyboard, mouse, touchscreen, trackball, touchpad, and joystick.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Type | Description |
|---|---|
| 'keyboard' | The input device is a keyboard. |
| 'touchscreen' | The input device is a touchscreen. |
| 'mouse' | The input device is a mouse. |
| 'trackball' | The input device is a trackball. |
| 'touchpad' | The input device is a touchpad. |
| 'joystick' | The input device is a joystick. |
ChangedType9+
type ChangedType = 'add' | 'remove'
Enumerates hot swap events.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Type | Description |
|---|---|
| 'add' | Device insertion. |
| 'remove' | Device removal. |
KeyboardType9+
Enumerates keyboard types.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Name | Value | Description |
|---|---|---|
| NONE | 0 | Keyboard without keys. |
| UNKNOWN | 1 | Keyboard with unknown keys. |
| ALPHABETIC_KEYBOARD | 2 | Full keyboard. |
| DIGITAL_KEYBOARD | 3 | Keypad. |
| HANDWRITING_PEN | 4 | Stylus. |
| REMOTE_CONTROL | 5 | Remote control. |
FunctionKey15+
Enumerates function key types.
System capability: SystemCapability.MultimodalInput.Input.InputDevice
| Name | Value | Description |
|---|---|---|
| CAPS_LOCK | 1 | CapsLock key. This key can be enabled or disabled only for the input keyboard extension. |