输入设备

2024-01-23 17:35 更新

输入设备管理模块,用于监听输入设备连接和断开状态,查询输入设备相关信息。

说明

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. 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列表。

示例

  1. try {
  2. inputDevice.getDeviceList((error, ids) => {
  3. if (error) {
  4. console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
  5. return;
  6. }
  7. console.log(`Device id list: ${JSON.stringify(ids)}`);
  8. });
  9. } catch (error) {
  10. console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
  11. }

inputDevice.getDeviceList9+

getDeviceList(): Promise<Array<number>>

获取所有输入设备的id列表,使用Promise异步方式返回结果。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

返回值

参数

说明

Promise<Array<number>>

Promise对象,异步返回所有输入设备的id列表。

示例

  1. try {
  2. inputDevice.getDeviceList().then((ids) => {
  3. console.log(`Device id list: ${JSON.stringify(ids)}`);
  4. });
  5. } catch (error) {
  6. console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
  7. }

inputDevice.getDeviceInfo9+

getDeviceInfo(deviceId: number, callback: AsyncCallback<InputDeviceData>): void

获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

deviceId

number

输入设备id。

callback

AsyncCallback<InputDeviceData>

回调函数,异步返回输入设备信息。

示例

  1. // 获取输入设备id为1的设备信息。
  2. try {
  3. inputDevice.getDeviceInfo(1, (error, deviceData) => {
  4. if (error) {
  5. console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
  6. return;
  7. }
  8. console.log(`Device info: ${JSON.stringify(deviceData)}`);
  9. });
  10. } catch (error) {
  11. console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
  12. }

inputDevice.getDeviceInfo9+

getDeviceInfo(deviceId: number): Promise<InputDeviceData>

获取指定输入设备的信息,使用Promise异步方式返回结果。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

deviceId

number

输入设备id。

返回值

参数

说明

Promise<InputDeviceData>

Promise对象,异步返回输入设备信息。

示例

  1. // 获取输入设备id为1的设备信息。
  2. try {
  3. inputDevice.getDeviceInfo(1).then((deviceData) => {
  4. console.log(`Device info: ${JSON.stringify(deviceData)}`);
  5. });
  6. } catch (error) {
  7. console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
  8. }

inputDevice.on9+

on(type: "change", listener: Callback<DeviceListener>): void

监听输入设备的热插拔事件,使用时需连接鼠标键盘等外部设备。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

type

string

输入设备的事件类型。

listener

Callback<DeviceListener>

回调函数,异步上报输入设备热插拔事件。

示例

  1. let isPhysicalKeyboardExist = true;
  2. try {
  3. inputDevice.on("change", (data) => {
  4. console.log(`Device event info: ${JSON.stringify(data)}`);
  5. inputDevice.getKeyboardType(data.deviceId, (err, type) => {
  6. console.log("The keyboard type is: " + type);
  7. if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
  8. // 监听物理键盘已连接。
  9. isPhysicalKeyboardExist = true;
  10. } else if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
  11. // 监听物理键盘已断开。
  12. isPhysicalKeyboardExist = false;
  13. }
  14. });
  15. });
  16. // 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
  17. } catch (error) {
  18. console.log(`Get device info failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  19. }

inputDevice.off9+

off(type: "change", listener?: Callback<DeviceListener>): void

取消监听输入设备的热插拔事件。在应用退出前调用,取消监听。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

type

string

输入设备的事件类型。

listener

Callback<DeviceListener>

取消监听的回调函数。

示例

  1. function callback(data) {
  2. console.log(`Report device event info: ${JSON.stringify(data, [`type`, `deviceId`])}`);
  3. };
  4. try {
  5. inputDevice.on("change", callback);
  6. } catch (error) {
  7. console.log(`Listen device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  8. }
  9. // 取消指定的监听。
  10. try {
  11. inputDevice.off("change", callback);
  12. } catch (error) {
  13. console.log(`Cancel listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  14. }
  15. // 取消所有监听。
  16. try {
  17. inputDevice.off("change");
  18. } catch (error) {
  19. console.log(`Cancel all listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  20. }

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列表。

示例

  1. inputDevice.getDeviceIds((error, ids) => {
  2. if (error) {
  3. console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
  4. return;
  5. }
  6. console.log(`Device id list: ${JSON.stringify(ids)}`);
  7. });

inputDevice.getDeviceIds(deprecated)

getDeviceIds(): Promise<Array<number>>

获取所有输入设备的id列表,使用Promise异步方式返回结果。

从API version 9 开始不再维护,建议使用inputDevice.getDeviceList代替。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

返回值

参数

说明

Promise<Array<number>>

Promise对象,异步返回所有输入设备的id列表。

示例

  1. inputDevice.getDeviceIds().then((ids) => {
  2. console.log(`Device id list: ${JSON.stringify(ids)}`);
  3. });

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>

回调函数,异步返回输入设备信息。

示例

  1. // 获取输入设备id为1的设备信息。
  2. inputDevice.getDevice(1, (error, deviceData) => {
  3. if (error) {
  4. console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
  5. return;
  6. }
  7. console.log(`Device info: ${JSON.stringify(deviceData)}`);
  8. });

inputDevice.getDevice(deprecated)

getDevice(deviceId: number): Promise<InputDeviceData>

获取指定输入设备的信息,使用Promise异步方式返回结果。

从API version 9 开始不再维护,建议使用inputDevice.getDeviceInfo代替。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

deviceId

number

输入设备id。

返回值

参数

说明

Promise<InputDeviceData>

Promise对象,异步返回输入设备信息。

示例

  1. // 获取输入设备id为1的设备信息。
  2. inputDevice.getDevice(1).then((deviceData) => {
  3. console.log(`Device info: ${JSON.stringify(deviceData)}`);
  4. });

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>>

回调函数,异步返回查询结果。

示例

  1. // 查询id为1的输入设备对于17、22和2055按键的支持情况。
  2. try {
  3. inputDevice.supportKeys(1, [17, 22, 2055], (error, supportResult) => {
  4. console.log(`Query result: ${JSON.stringify(supportResult)}`);
  5. });
  6. } catch (error) {
  7. console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  8. }

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对象,异步返回查询结果。

示例

  1. // 查询id为1的输入设备对于17、22和2055按键的支持情况。
  2. try {
  3. inputDevice.supportKeys(1, [17, 22, 2055]).then((supportResult) => {
  4. console.log(`Query result: ${JSON.stringify(supportResult)}`);
  5. });
  6. } catch (error) {
  7. console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
  8. }

inputDevice.getKeyboardType9+

getKeyboardType(deviceId: number, callback: AsyncCallback<KeyboardType>): void

获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

deviceId

number

输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。

callback

AsyncCallback<KeyboardType>

回调函数,异步返回查询结果。

示例

  1. // 查询id为1的输入设备的键盘类型。
  2. try {
  3. inputDevice.getKeyboardType(1, (error, type) => {
  4. if (error) {
  5. console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
  6. return;
  7. }
  8. console.log(`Keyboard type: ${JSON.stringify(type)}`);
  9. });
  10. } catch (error) {
  11. console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
  12. }

inputDevice.getKeyboardType9+

getKeyboardType(deviceId: number): Promise<KeyboardType>

获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数名

类型

必填

说明

deviceId

number

输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。

返回值

参数

说明

Promise<KeyboardType>

Promise对象,异步返回查询结果。

示例

  1. // 示例查询设备id为1的设备键盘类型。
  2. try {
  3. inputDevice.getKeyboardType(1).then((type) => {
  4. console.log(`Keyboard type: ${JSON.stringify(type)}`);
  5. });
  6. } catch (error) {
  7. console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
  8. }

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

表示遥控器设备。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号