js-apis-inputdevice.md 15.2 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6
# 输入设备


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


7
> **说明**:<br>
Z
zengyawen 已提交
8 9 10 11 12 13
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


14
```js
Z
zengyawen 已提交
15 16 17
import inputDevice from '@ohos.multimodalInput.inputDevice';
```

H
hungry_feiwei 已提交
18
## inputDevice.on<sup>9+</sup>
H
hungry_feiwei 已提交
19 20 21

on(type: “change”, listener: Callback&lt;DeviceListener&gt;): void

22
监听输入设备的热插拔事件。
H
hungry_feiwei 已提交
23

24
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
25

26
**参数**
H
hungry_feiwei 已提交
27

H
HelloCrease 已提交
28 29 30 31
| 参数       | 类型                                       | 必填   | 说明          |
| -------- | ---------------------------------------- | ---- | ----------- |
| type     | string                                   | 是    | 输入设备的事件类型。  |
| listener | Callback&lt;[DeviceListener](#devicelistener<sup>9+</sup>)&gt; | 是    | 可上报的输入设备事件。 |
H
hungry_feiwei 已提交
32

33
**示例**
H
hungry_feiwei 已提交
34 35

```js
M
mayunteng_1 已提交
36 37
let isPhysicalKeyboardExist = true;
inputDevice.on("change", (data) => {
H
hungry_feiwei 已提交
38
    console.log("type: " + data.type + ", deviceId: " + data.deviceId);
H
hungry_feiwei 已提交
39
    inputDevice.getKeyboardType(data.deviceId, (ret) => {
M
mayunteng_1 已提交
40
        console.log("The keyboard type of the device is: " + ret);
M
mayunteng_1 已提交
41
        if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
H
hungry_feiwei 已提交
42
            // 监听物理键盘已连接。
H
hungry_feiwei 已提交
43
            isPhysicalKeyboardExist = true;
M
mayunteng_1 已提交
44
        } else if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
H
hungry_feiwei 已提交
45
            // 监听物理键盘已断开。
H
hungry_feiwei 已提交
46 47 48
            isPhysicalKeyboardExist = false;
        }
    });
H
hungry_feiwei 已提交
49 50
});
// 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
H
hungry_feiwei 已提交
51 52
```

H
hungry_feiwei 已提交
53
## inputDevice.off<sup>9+</sup>
H
hungry_feiwei 已提交
54

H
hungry_feiwei 已提交
55
off(type: “change”, listener?: Callback&lt;DeviceListener&gt;): void
H
hungry_feiwei 已提交
56

57
取消监听输入设备的热插拔事件。
H
hungry_feiwei 已提交
58

59
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
60

61
**参数**
H
hungry_feiwei 已提交
62

H
HelloCrease 已提交
63 64 65 66
| 参数       | 类型                                       | 必填   | 说明          |
| -------- | ---------------------------------------- | ---- | ----------- |
| type     | string                                   | 是    | 输入设备的事件类型。  |
| listener | Callback&lt;[DeviceListener](#devicelistener<sup>9+</sup>)&gt; | 否    | 可上报的输入设备事件。 |
H
hungry_feiwei 已提交
67

68
**示例**
H
hungry_feiwei 已提交
69 70

```js
H
hungry_feiwei 已提交
71 72 73 74 75 76 77
listener: function(data) {
    console.log("type: " + data.type + ", deviceId: " + data.deviceId);
}

// 单独取消listener的监听。
inputDevice.off("change", this.listener);

78
// 取消所有监听。
H
hungry_feiwei 已提交
79
inputDevice.off("change");
80
// 取消监听后,软键盘默认都弹出。
H
hungry_feiwei 已提交
81
```
Z
zengyawen 已提交
82 83 84 85 86 87 88

## inputDevice.getDeviceIds

getDeviceIds(callback: AsyncCallback&lt;Array&lt;number&gt;&gt;): void

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

89
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
90

91
**参数**
Z
zengyawen 已提交
92

93
| 参数      | 类型                                     | 必填 | 说明  |
H
HelloCrease 已提交
94
| -------- | ---------------------------------------- | ---- | ----- |
H
HelloCrease 已提交
95
| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是    | 回调函数。 |
M
mayunteng_1 已提交
96

97
**示例**
Z
zengyawen 已提交
98

99
```js
H
hungry_feiwei 已提交
100 101 102
inputDevice.getDeviceIds((ids)=>{
    console.log("The device ID list is: " + ids);
});
Z
zengyawen 已提交
103 104
```

M
mayunteng_1 已提交
105 106
## inputDevice.getDeviceIds

H
hungry_feiwei 已提交
107
function getDeviceIds(): Promise&lt;&lt;Array&lt;number&gt;&gt;
M
mayunteng_1 已提交
108 109 110

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

111
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
112

113
**返回值**
M
mayunteng_1 已提交
114

H
HelloCrease 已提交
115 116
| 参数                                 | 说明                  |
| ---------------------------------- | ------------------- |
117
| Promise&lt;Array&lt;number&gt;&gt; | Promise实例,用于异步获取结果。 |
M
mayunteng_1 已提交
118

119
**示例**
M
mayunteng_1 已提交
120

121
```js
H
hungry_feiwei 已提交
122 123 124
inputDevice.getDeviceIds().then((ids)=>{
    console.log("The device ID list is: " + ids);
});
M
mayunteng_1 已提交
125 126
```

Z
zengyawen 已提交
127 128 129 130 131 132
## inputDevice.getDevice

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

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

133
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
134

135
**参数**
Z
zengyawen 已提交
136

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

142
**示例**
Z
zengyawen 已提交
143

144
```js
H
hungry_feiwei 已提交
145 146 147 148
// 示例获取设备id为1的设备name信息。
inputDevice.getDevice(1, (inputDevice)=>{
    console.log("The device name is: " + inputDevice.name);
});
Z
zengyawen 已提交
149 150
```

M
mayunteng_1 已提交
151 152
## inputDevice.getDevice

H
hungry_feiwei 已提交
153
function getDevice(deviceId: number): Promise&lt;InputDeviceData&gt;
M
mayunteng_1 已提交
154 155 156

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

157
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
158

159
**参数**
H
hungry_feiwei 已提交
160

H
HelloCrease 已提交
161 162 163
| 参数       | 类型     | 必填   | 说明           |
| -------- | ------ | ---- | ------------ |
| deviceId | number | 是    | 需要获取信息的设备id。 |
H
hungry_feiwei 已提交
164

165
**返回值**
M
mayunteng_1 已提交
166

H
HelloCrease 已提交
167 168
| 参数                                       | 说明                  |
| ---------------------------------------- | ------------------- |
169
| Promise&lt;[InputDeviceData](#inputdevicedata)&gt; | Promise实例,用于异步获取结果。 |
M
mayunteng_1 已提交
170

171
**示例**
M
mayunteng_1 已提交
172

173
```js
H
hungry_feiwei 已提交
174 175 176 177
// 示例获取设备id为1的设备name信息。
inputDevice.getDevice(1).then((inputDevice)=>{
    console.log("The device name is: " + inputDevice.name);
});
M
mayunteng_1 已提交
178 179
```

H
hungry_feiwei 已提交
180
## inputDevice.supportKeys<sup>9+</sup>
M
mayunteng_1 已提交
181

H
hungry_feiwei 已提交
182
supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: Callback&lt;Array&lt;boolean&gt;&gt;): void;
Z
zengyawen 已提交
183

184
获取输入设备支持的键码值,使用callback方式作为异步方法。
M
mayunteng_1 已提交
185

186
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
187

188
**参数**
H
hungry_feiwei 已提交
189

H
HelloCrease 已提交
190 191 192 193 194
| 参数       | 类型                                   | 必填   | 说明                                |
| -------- | ------------------------------------ | ---- | --------------------------------- |
| deviceId | number                               | 是    | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
| keys     | Array&lt;KeyCode&gt;                 | 是    | 需要查询的键码值,最多支持5个按键查询。              |
| callback | Callback&lt;Array&lt;boolean&gt;&gt; | 是    | 回调函数,异步返回查询结果。                    |
H
hungry_feiwei 已提交
195

196
**示例**
H
hungry_feiwei 已提交
197 198

```js
H
hungry_feiwei 已提交
199 200 201 202
// 示例查询id为1的设备对于17、22和2055按键的支持情况。
inputDevice.supportKeys(1, [17, 22, 2055], (ret)=>{
    console.log("The query result is as follows: " + ret);
});
H
hungry_feiwei 已提交
203 204
```

H
hungry_feiwei 已提交
205
## inputDevice.supportKeys<sup>9+</sup>
H
hungry_feiwei 已提交
206 207 208

supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;): Promise&lt;Array&lt;boolean&gt;&gt;

209
获取输入设备支持的键码值,使用Promise方式作为异步方法。
M
mayunteng_1 已提交
210

211
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
212

213
**参数**
H
hungry_feiwei 已提交
214

H
HelloCrease 已提交
215 216 217 218
| 参数       | 类型                   | 必填   | 说明                                |
| -------- | -------------------- | ---- | --------------------------------- |
| deviceId | number               | 是    | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
| keys     | Array&lt;KeyCode&gt; | 是    | 需要查询的键码值,最多支持5个按键查询。              |
H
hungry_feiwei 已提交
219

220
**返回值**
M
mayunteng_1 已提交
221

H
HelloCrease 已提交
222 223
| 参数                                  | 说明                  |
| ----------------------------------- | ------------------- |
224
| Promise&lt;Array&lt;boolean&gt;&gt; | Promise实例,用于异步获取结果。 |
M
mayunteng_1 已提交
225

226
**示例**
M
mayunteng_1 已提交
227 228

```js
H
hungry_feiwei 已提交
229 230 231 232
// 示例查询id为1的设备对于17、22和2055按键的支持情况。
inputDevice.supportKeys(1, [17, 22, 2055]).then((ret)=>{
    console.log("The query result is as follows: " + ret);
})
M
mayunteng_1 已提交
233 234
```

H
hungry_feiwei 已提交
235
## inputDevice.getKeyboardType<sup>9+</sup>
H
hungry_feiwei 已提交
236 237 238 239 240

getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void;

查询输入设备的键盘类型,使用callback方式作为异步方法。

241
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
242

243
**参数**
H
hungry_feiwei 已提交
244

H
HelloCrease 已提交
245 246 247 248
| 参数       | 类型                                       | 必填   | 说明                                |
| -------- | ---------------------------------------- | ---- | --------------------------------- |
| deviceId | number                                   | 是    | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
| callback | AsyncCallback&lt;[KeyboardType](#keyboardtype)&gt; | 是    | 回调函数,异步返回查询结果。                    |
H
hungry_feiwei 已提交
249

250
**示例**
H
hungry_feiwei 已提交
251 252

```js
H
hungry_feiwei 已提交
253 254 255 256
// 示例查询设备id为1的设备键盘类型。
inputDevice.getKeyboardType(1, (ret)=>{
    console.log("The keyboard type of the device is: " + ret);
});
H
hungry_feiwei 已提交
257 258
```

H
hungry_feiwei 已提交
259
## inputDevice.getKeyboardType<sup>9+</sup>
H
hungry_feiwei 已提交
260 261 262 263 264

getKeyboardType(deviceId: number,): Promise&lt;KeyboardType&gt;

查询输入设备的键盘类型,使用Promise方式作为异步方法。

265
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
266

267
**返回值**
H
hungry_feiwei 已提交
268

H
HelloCrease 已提交
269 270
| 参数                                       | 说明                  |
| ---------------------------------------- | ------------------- |
271
| Promise&lt;[KeyboardType](#keyboardtype)&gt; | Promise实例,用于异步获取结果。 |
H
hungry_feiwei 已提交
272

273
**示例**
H
hungry_feiwei 已提交
274 275

```js
H
hungry_feiwei 已提交
276
// 示例查询设备id为1的设备键盘类型。
H
HelloCrease 已提交
277
inputDevice.getKeyboardType(1).then((ret)=>{
H
hungry_feiwei 已提交
278 279
    console.log("The keyboard type of the device is: " + ret);
})
H
hungry_feiwei 已提交
280 281
```

H
hungry_feiwei 已提交
282
## DeviceListener<sup>9+</sup>
H
hungry_feiwei 已提交
283 284 285

输入设备的描述信息。

286
**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
287

H
HelloCrease 已提交
288 289 290 291
| 名称       | 参数类型                      | 说明                                |
| -------- | ------------------------- | --------------------------------- |
| type     | [ChangeType](#changetype) | 表示输入设备插入或者移除。                     |
| deviceId | number                    | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
H
hungry_feiwei 已提交
292

Z
zengyawen 已提交
293 294 295 296
## InputDeviceData

输入设备的描述信息。

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

H
HelloCrease 已提交
299 300 301 302
| 名称                   | 参数类型                                   | 说明                                       |
| -------------------- | -------------------------------------- | ---------------------------------------- |
| id                   | number                                 | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。        |
| name                 | string                                 | 输入设备的名字。                                 |
H
hungry_feiwei 已提交
303
| sources              | Array&lt;[SourceType](#sourcetype)&gt; | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |
H
HelloCrease 已提交
304 305 306 307 308 309 310
| axisRanges           | Array&lt;[axisRanges](#axisrange)&gt;  | 输入设备的轴信息。                                |
| bus<sup>9+</sup>     | number                                 | 输入设备的总线类型。                               |
| product<sup>9+</sup> | number                                 | 输入设备的产品信息。                               |
| vendor<sup>9+</sup>  | number                                 | 输入设备的厂商信息。                               |
| version<sup>9+</sup> | number                                 | 输入设备的版本信息。                               |
| phys<sup>9+</sup>    | string                                 | 输入设备的物理地址。                               |
| uniq<sup>9+</sup>    | string                                 | 输入设备的唯一标识。                               |
H
hungry_feiwei 已提交
311 312

## AxisType<sup>9+</sup>
M
mayunteng_1 已提交
313

314
输入设备的轴类型。
H
hungry_feiwei 已提交
315

316
**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
317

H
HelloCrease 已提交
318 319 320 321 322 323 324 325 326 327 328
| 名称          | 参数类型   | 说明              |
| ----------- | ------ | --------------- |
| 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 | 无。              |
M
mayunteng_1 已提交
329 330 331

## AxisRange

332
输入设备的轴信息。
M
mayunteng_1 已提交
333

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

H
HelloCrease 已提交
336 337
| 名称                      | 参数类型                      | 说明       |
| ----------------------- | ------------------------- | -------- |
H
hungry_feiwei 已提交
338
| source                  | [SourceType](#sourcetype) | 轴的输入源类型。 |
H
HelloCrease 已提交
339 340 341 342 343 344
| axis                    | [AxisType](axistype)      | 轴的类型。    |
| max                     | number                    | 轴的最大值。   |
| min                     | number                    | 轴的最小值。   |
| fuzz<sup>9+</sup>       | number                    | 轴的模糊值。   |
| flat<sup>9+</sup>       | number                    | 轴的基准值。   |
| resolution<sup>9+</sup> | number                    | 轴的分辨率。   |
Z
zengyawen 已提交
345 346 347 348 349

## SourceType

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

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

H
HelloCrease 已提交
352 353 354
| 名称          | 参数类型   | 说明          |
| ----------- | ------ | ----------- |
| keyboard    | string | 表示输入设备是键盘。  |
M
mayunteng_1 已提交
355
| touchscreen | string | 表示输入设备是触摸屏。 |
H
HelloCrease 已提交
356 357 358 359
| mouse       | string | 表示输入设备是鼠标。  |
| trackball   | string | 表示输入设备是轨迹球。 |
| touchpad    | string | 表示输入设备是触摸板。 |
| joystick    | string | 表示输入设备是操纵杆。 |
M
mayunteng_1 已提交
360

H
hungry_feiwei 已提交
361 362 363 364
## ChangeType

定义监听设备热插拔事件。

365
**系统能力**:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
366

H
HelloCrease 已提交
367 368 369 370
| 名称     | 参数类型   | 说明        |
| ------ | ------ | --------- |
| add    | string | 表示输入设备插入。 |
| remove | string | 表示输入设备移除。 |
H
hungry_feiwei 已提交
371

H
hungry_feiwei 已提交
372
## KeyboardType<sup>9+</sup>
M
mayunteng_1 已提交
373

H
hungry_feiwei 已提交
374
定义键盘输入设备的类型。
M
mayunteng_1 已提交
375

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

H
HelloCrease 已提交
378 379 380 381 382 383 384 385
| 名称                  | 参数类型   | 值    | 说明        |
| ------------------- | ------ | ---- | --------- |
| NONE                | number | 0    | 表示无按键设备。  |
| UNKNOWN             | number | 1    | 表示未知按键设备。 |
| ALPHABETIC_KEYBOARD | number | 2    | 表示全键盘设备。  |
| DIGITAL_KEYBOARD    | number | 3    | 表示小键盘设备。  |
| HANDWRITING_PEN     | number | 4    | 表示手写笔设备。  |
| REMOTE_CONTROL      | number | 5    | 表示遥控器设备。  |