@ohos.multimodalInput.inputDevice (输入设备)
输入设备管理模块,用于监听输入设备连接和断开状态,查询输入设备相关信息。
说明:
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import inputDevice from '@ohos.multimodalInput.inputDevice';
inputDevice.getDeviceList9+
getDeviceList(callback: AsyncCallback<Array<number>>): void
获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Array<number>> | 是 | 回调函数,异步返回所有输入设备的id列表。 |
示例:
try {
inputDevice.getDeviceList((error, ids) => {
if (error) {
console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Device id list: ${JSON.stringify(ids)}`);
});
} catch (error) {
console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getDeviceList9+
getDeviceList(): Promise<Array<number>>
获取所有输入设备的id列表,使用Promise异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
返回值:
参数 | 说明 |
---|---|
Promise<Array<number>> | Promise对象,异步返回所有输入设备的id列表。 |
示例:
try {
inputDevice.getDeviceList().then((ids) => {
console.log(`Device id list: ${JSON.stringify(ids)}`);
});
} catch (error) {
console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getDeviceInfo9+
getDeviceInfo(deviceId: number, callback: AsyncCallback<InputDeviceData>): void
获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id。 |
callback | AsyncCallback<InputDeviceData> | 是 | 回调函数,异步返回输入设备信息。 |
示例:
// 获取输入设备id为1的设备信息。
try {
inputDevice.getDeviceInfo(1, (error, deviceData) => {
if (error) {
console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Device info: ${JSON.stringify(deviceData)}`);
});
} catch (error) {
console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getDeviceInfo9+
getDeviceInfo(deviceId: number): Promise<InputDeviceData>
获取指定输入设备的信息,使用Promise异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id。 |
返回值:
参数 | 说明 |
---|---|
Promise<InputDeviceData> | Promise对象,异步返回输入设备信息。 |
示例:
// 获取输入设备id为1的设备信息。
try {
inputDevice.getDeviceInfo(1).then((deviceData) => {
console.log(`Device info: ${JSON.stringify(deviceData)}`);
});
} catch (error) {
console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.on9+
on(type: "change", listener: Callback<DeviceListener>): void
监听输入设备的热插拔事件。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 输入设备的事件类型。 |
listener | Callback<DeviceListener> | 是 | 回调函数,异步上报输入设备热插拔事件。 |
示例:
let isPhysicalKeyboardExist = true;
try {
inputDevice.on("change", (data) => {
console.log(`Device event info: ${JSON.stringify(data)}`);
inputDevice.getKeyboardType(data.deviceId, (err, type) => {
console.log("The keyboard type is: " + type);
if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
// 监听物理键盘已连接。
isPhysicalKeyboardExist = true;
} else if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
// 监听物理键盘已断开。
isPhysicalKeyboardExist = false;
}
});
});
// 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
} catch (error) {
console.log(`Get device info failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.off9+
off(type: "change", listener?: Callback<DeviceListener>): void
取消监听输入设备的热插拔事件。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 输入设备的事件类型。 |
listener | Callback<DeviceListener> | 否 | 取消监听的回调函数。 |
示例:
function callback(data) {
console.log(`Report device event info: ${JSON.stringify(data, [`type`, `deviceId`])}`);
};
try {
inputDevice.on("change", callback);
} catch (error) {
console.log(`Listen device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
// 取消指定的监听。
try {
inputDevice.off("change", callback);
} catch (error) {
console.log(`Cancel listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
// 取消所有监听。
try {
inputDevice.off("change");
} catch (error) {
console.log(`Cancel all listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getDeviceIds(deprecated)
getDeviceIds(callback: AsyncCallback<Array<number>>): void
获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
从API version 9 开始不再维护,建议使用inputDevice.getDeviceList代替。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Array<number>> | 是 | 回调函数,异步返回所有输入设备的id列表。 |
示例:
inputDevice.getDeviceIds((error, ids) => {
if (error) {
console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Device id list: ${JSON.stringify(ids)}`);
});
inputDevice.getDeviceIds(deprecated)
getDeviceIds(): Promise<Array<number>>
获取所有输入设备的id列表,使用Promise异步方式返回结果。
从API version 9 开始不再维护,建议使用inputDevice.getDeviceList代替。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
返回值:
参数 | 说明 |
---|---|
Promise<Array<number>> | Promise对象,异步返回所有输入设备的id列表。 |
示例:
inputDevice.getDeviceIds().then((ids) => {
console.log(`Device id list: ${JSON.stringify(ids)}`);
});
inputDevice.getDevice(deprecated)
getDevice(deviceId: number, callback: AsyncCallback<InputDeviceData>): void
获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
从API version 9 开始不再维护,建议使用inputDevice.getDeviceInfo代替。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id。 |
callback | AsyncCallback<InputDeviceData> | 是 | 回调函数,异步返回输入设备信息。 |
示例:
// 获取输入设备id为1的设备信息。
inputDevice.getDevice(1, (error, deviceData) => {
if (error) {
console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Device info: ${JSON.stringify(deviceData)}`);
});
inputDevice.getDevice(deprecated)
getDevice(deviceId: number): Promise<InputDeviceData>
获取指定输入设备的信息,使用Promise异步方式返回结果。
从API version 9 开始不再维护,建议使用inputDevice.getDeviceInfo代替。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id。 |
返回值:
参数 | 说明 |
---|---|
Promise<InputDeviceData> | Promise对象,异步返回输入设备信息。 |
示例:
// 获取输入设备id为1的设备信息。
inputDevice.getDevice(1).then((deviceData) => {
console.log(`Device info: ${JSON.stringify(deviceData)}`);
});
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array<KeyCode>, callback: AsyncCallback <Array<boolean>>): void
获取输入设备是否支持指定的键码值,使用AsyncCallback异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
keys | Array<KeyCode> | 是 | 需要查询的键码值,最多支持5个按键查询。 |
callback | AsyncCallback<Array<boolean>> | 是 | 回调函数,异步返回查询结果。 |
示例:
// 查询id为1的输入设备对于17、22和2055按键的支持情况。
try {
inputDevice.supportKeys(1, [17, 22, 2055], (error, supportResult) => {
console.log(`Query result: ${JSON.stringify(supportResult)}`);
});
} catch (error) {
console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array<KeyCode>): Promise<Array<boolean>>
获取输入设备是否支持指定的键码值,使用Promise异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
keys | Array<KeyCode> | 是 | 需要查询的键码值,最多支持5个按键查询。 |
返回值:
参数 | 说明 |
---|---|
Promise<Array<boolean>> | Promise对象,异步返回查询结果。 |
示例:
// 查询id为1的输入设备对于17、22和2055按键的支持情况。
try {
inputDevice.supportKeys(1, [17, 22, 2055]).then((supportResult) => {
console.log(`Query result: ${JSON.stringify(supportResult)}`);
});
} catch (error) {
console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number, callback: AsyncCallback<KeyboardType>): void
获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
callback | AsyncCallback<KeyboardType> | 是 | 回调函数,异步返回查询结果。 |
示例:
// 查询id为1的输入设备的键盘类型。
try {
inputDevice.getKeyboardType(1, (error, type) => {
if (error) {
console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
return;
}
console.log(`Keyboard type: ${JSON.stringify(type)}`);
});
} catch (error) {
console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number): Promise<KeyboardType>
获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
deviceId | number | 是 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
返回值:
参数 | 说明 |
---|---|
Promise<KeyboardType> | Promise对象,异步返回查询结果。 |
示例:
// 示例查询设备id为1的设备键盘类型。
try {
inputDevice.getKeyboardType(1).then((type) => {
console.log(`Keyboard type: ${JSON.stringify(type)}`);
});
} catch (error) {
console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
DeviceListener9+
输入设备热插拔的描述信息。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
type | ChangedType | 是 | 否 | 输入设备插入或者移除。 |
deviceId | number | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
InputDeviceData
输入设备的描述信息。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
id | number | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
name | string | 是 | 否 | 输入设备的名字。 |
sources | Array<SourceType> | 是 | 否 | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |
axisRanges | Array<AxisRange> | 是 | 否 | 输入设备的轴信息。 |
bus9+ | number | 是 | 否 | 输入设备的总线类型。 |
product9+ | number | 是 | 否 | 输入设备的产品信息。 |
vendor9+ | number | 是 | 否 | 输入设备的厂商信息。 |
version9+ | number | 是 | 否 | 输入设备的版本信息。 |
phys9+ | string | 是 | 否 | 输入设备的物理地址。 |
uniq9+ | string | 是 | 否 | 输入设备的唯一标识。 |
AxisType9+
输入设备的轴类型。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
touchmajor | string | 是 | 否 | 表示touchmajor轴。 |
touchminor | string | 是 | 否 | 表示touchminor轴。 |
toolminor | string | 是 | 否 | 表示toolminor轴。 |
toolmajor | string | 是 | 否 | 表示toolmajor轴。 |
orientation | string | 是 | 否 | 表示orientation轴。 |
pressure | string | 是 | 否 | 表示pressure轴。 |
x | string | 是 | 否 | 表示x轴。 |
y | string | 是 | 否 | 表示y轴。 |
NULL | string | 是 | 否 | 无。 |
AxisRange
输入设备的轴信息。
系统能力: SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
source | SourceType | 是 | 否 | 轴的输入源类型。 |
axis | AxisType | 是 | 否 | 轴的类型。 |
max | number | 是 | 否 | 轴的最大值。 |
min | number | 是 | 否 | 轴的最小值。 |
fuzz9+ | number | 是 | 否 | 轴的模糊值。 |
flat9+ | number | 是 | 否 | 轴的基准值。 |
resolution9+ | number | 是 | 否 | 轴的分辨率。 |
SourceType9+
轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的输入源就是鼠标。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
keyboard | string | 是 | 否 | 表示输入设备是键盘。 |
touchscreen | string | 是 | 否 | 表示输入设备是触摸屏。 |
mouse | string | 是 | 否 | 表示输入设备是鼠标。 |
trackball | string | 是 | 否 | 表示输入设备是轨迹球。 |
touchpad | string | 是 | 否 | 表示输入设备是触摸板。 |
joystick | string | 是 | 否 | 表示输入设备是操纵杆。 |
ChangedType9+
定义监听设备热插拔事件。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
add | string | 是 | 否 | 表示输入设备插入。 |
remove | string | 是 | 否 | 表示输入设备移除。 |
KeyboardType9+
定义键盘输入设备的类型。
系统能力:SystemCapability.MultimodalInput.Input.InputDevice
名称 | 值 | 说明 |
---|---|---|
NONE | 0 | 表示无按键设备。 |
UNKNOWN | 1 | 表示未知按键设备。 |
ALPHABETIC_KEYBOARD | 2 | 表示全键盘设备。 |
DIGITAL_KEYBOARD | 3 | 表示小键盘设备。 |
HANDWRITING_PEN | 4 | 表示手写笔设备。 |
REMOTE_CONTROL | 5 | 表示遥控器设备。 |