js-apis-inputdevice.md 7.1 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
# 输入设备


输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的id、name和指针移动速度等信息。


> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


14
```js
Z
zengyawen 已提交
15 16 17 18 19 20 21 22 23 24 25 26
import inputDevice from '@ohos.multimodalInput.inputDevice';
```


## inputDevice.getDeviceIds

getDeviceIds(callback: AsyncCallback<Array<number>>): void

获取所有输入设备的id列表,使用callback方式作为异步方法。

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

M
mayunteng_1 已提交
27
**参数:**
Z
zengyawen 已提交
28

H
HelloCrease 已提交
29 30 31
| 参数       | 类型                                       | 必填   | 说明    |
| -------- | ---------------------------------------- | ---- | ----- |
| callback | AsyncCallback<Array<number>> | 是    | 回调函数。 |
M
mayunteng_1 已提交
32

Z
zengyawen 已提交
33 34 35

**示例:** 

36 37 38 39 40
```js
// 示例获取设备所有设备id。
inputDevice.getDeviceIds(function (ids) {
  // 处理结果
});
Z
zengyawen 已提交
41 42
```

M
mayunteng_1 已提交
43 44 45 46 47 48 49 50 51 52
## inputDevice.getDeviceIds

function getDeviceIds(): Promise<Array<number>>

获取所有输入设备的id列表,使用Promise方式作为异步方法。

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

**返回值:**

M
mayunteng_1 已提交
53 54 55
| 参数                   | 说明                            |
| ---------------------- | ------------------------------- |
| Promise<Array<number>> | Promise实例,用于异步获取结果。 |
M
mayunteng_1 已提交
56 57 58

**示例:**

59 60 61 62 63 64 65 66
```js
// 示例获取设备所有设备id。
let promise = inputDevice.getDeviceIds();
promise.then((ids)=> {
    // 处理结果
}).catch((err)=>{
    // 处理异常
});
M
mayunteng_1 已提交
67 68 69 70 71
```




Z
zengyawen 已提交
72 73 74 75 76 77 78 79 80 81 82

## inputDevice.getDevice

getDevice(deviceId: number, callback: AsyncCallback&lt;InputDeviceData&gt;): void

获取输入设备的描述信息,使用callback方式作为异步方法。

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

**参数:** 

H
HelloCrease 已提交
83 84 85 86
| 参数       | 类型                                       | 必填   | 说明                          |
| -------- | ---------------------------------------- | ---- | --------------------------- |
| deviceId | number                                   | 是    | 需要获取信息的设备id。                |
| callback | AsyncCallback&lt;[InputDeviceData](#inputdevicedata)&gt; | 是    | 回调函数,异步返回InputDeviceData对象。 |
Z
zengyawen 已提交
87 88 89

**示例:** 

90 91 92 93 94
```js
// 示例获取设备id为1的设备信息。
inputDevice.getDevice(1, function (deviceData) {
  // 处理结果
});
Z
zengyawen 已提交
95 96
```

M
mayunteng_1 已提交
97 98 99 100 101 102 103 104 105 106
## inputDevice.getDevice

function getDevice(deviceId: number): Promise<InputDeviceData>

获取输入设备的描述信息,使用Promise方式作为异步方法。

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

**返回值:**

M
mayunteng_1 已提交
107 108 109
| 参数                     | 说明                            |
| ------------------------ | ------------------------------- |
| Promise<InputDeviceData> | Promise实例,用于异步获取结果。 |
M
mayunteng_1 已提交
110 111 112

**示例:**

113 114 115 116 117 118 119 120
```js
// 示例获取设备id为1的设备信息。
let promise = inputDevice.getDevice(1);
promise.then((data) => {
  // 处理结果
}).catch((err) => {
  // 处理异常
});
M
mayunteng_1 已提交
121 122 123
```


Z
zengyawen 已提交
124

M
mayunteng_1 已提交
125
## inputDevice.on<sup>9+</sup>
M
mayunteng_1 已提交
126

M
mayunteng_1 已提交
127
on(type: "change", listener: Callback<DeviceListener>): void
M
mayunteng_1 已提交
128 129 130 131 132 133 134

开始监听设备插拔事件。

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

**返回值:**

M
mayunteng_1 已提交
135 136 137 138
| 参数     | 类型                     | 必填 | 说明       |
| -------- | ------------------------ | ---- | ---------- |
| type     | string                   | 是   | 监听类型。 |
| listener | Callback<DeviceListener> | 是   | 回调函数。 |
M
mayunteng_1 已提交
139 140 141 142

**示例:**

```js
143 144 145 146
// 示例监听设备插拔事件
inputDevice.on("change", function (deviceChangedData) {
  // 处理结果
});
M
mayunteng_1 已提交
147 148 149 150 151 152 153 154 155 156 157 158
```

## inputDevice.off

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

停止监听设备插拔事件。

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

**返回值:**

M
mayunteng_1 已提交
159 160 161 162
| 参数     | 类型                     | 必填 | 说明                 |
| -------- | ------------------------ | ---- | -------------------- |
| type     | string                   | 是   | 监听类型。           |
| listener | Callback<DeviceListener> | 否   | 停止监听的回调函数。 |
M
mayunteng_1 已提交
163 164 165 166

**示例:**

```js
167 168
// 示例取消监听设备插拔事件
inputDevice.off("change");
M
mayunteng_1 已提交
169 170
```

Z
zengyawen 已提交
171 172 173 174
## InputDeviceData

输入设备的描述信息。

M
mayunteng_1 已提交
175
**系统能力:**  以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
176

H
HelloCrease 已提交
177 178 179 180
| 名称      | 参数类型                                   | 说明                                       |
| ------- | -------------------------------------- | ---------------------------------------- |
| id      | number                                 | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。        |
| name    | string                                 | 输入设备的名字。                                 |
Z
zengyawen 已提交
181 182
| sources | Array&lt;[SourceType](#sourcetype)&gt; | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |

M
mayunteng_1 已提交
183 184
## AxisType

185
轴类型,本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
M
mayunteng_1 已提交
186 187 188 189 190 191 192

## AxisRange

输入设备的轴信息

**系统能力:**  以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

M
mayunteng_1 已提交
193 194
| 名称   | 参数类型                  | 说明             |
| ------ | ------------------------- | ---------------- |
M
mayunteng_1 已提交
195
| source | [SourceType](#sourcetype) | 轴的输入源类型。 |
M
mayunteng_1 已提交
196 197 198
| axis   | [AxisType](axistype)      | 轴的类型。       |
| max    | number                    | 轴上报的最大值。 |
| min    | number                    | 轴上报的最小值。 |
M
mayunteng_1 已提交
199 200


Z
zengyawen 已提交
201 202 203 204 205

## SourceType

定义这个轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的源就是鼠标。

M
mayunteng_1 已提交
206
**系统能力:**  以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
207

H
HelloCrease 已提交
208 209 210
| 名称          | 参数类型   | 说明          |
| ----------- | ------ | ----------- |
| keyboard    | string | 表示输入设备是键盘。  |
M
mayunteng_1 已提交
211
| touchscreen | string | 表示输入设备是触摸屏。 |
H
HelloCrease 已提交
212 213 214 215
| mouse       | string | 表示输入设备是鼠标。  |
| trackball   | string | 表示输入设备是轨迹球。 |
| touchpad    | string | 表示输入设备是触摸板。 |
| joystick    | string | 表示输入设备是操纵杆。 |
M
mayunteng_1 已提交
216 217 218 219 220 221 222

## DeviceListener

设备插拔事件。

**系统能力:**  以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

M
mayunteng_1 已提交
223 224 225 226
| 名称     | 参数类型 | 说明                                |
| -------- | -------- | ----------------------------------- |
| type     | string   | 表示设备插拔类型,取值add和remove。 |
| deviceId | number   | 表示设备id。                        |