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


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


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


## 导入模块


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

76 77 78
// 监听输入设备的热插拔事件
inputDevice.on("change", listener);

H
hungry_feiwei 已提交
79
// 单独取消listener的监听。
H
HelloCrease 已提交
80
inputDevice.off("change", listener);
H
hungry_feiwei 已提交
81

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

## inputDevice.getDeviceIds

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

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

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

95
**参数**
Z
zengyawen 已提交
96

H
HelloCrease 已提交
97
| 参数       | 类型                                       | 必填   | 说明    |
H
HelloCrease 已提交
98
| -------- | ---------------------------------------- | ---- | ----- |
H
HelloCrease 已提交
99
| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是    | 回调函数。 |
M
mayunteng_1 已提交
100

101
**示例**
Z
zengyawen 已提交
102

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

M
mayunteng_1 已提交
109 110
## inputDevice.getDeviceIds

Z
zengyawen 已提交
111
getDeviceIds(): Promise&lt;Array&lt;number&gt;&gt;
M
mayunteng_1 已提交
112 113 114

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

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

117
**返回值**
M
mayunteng_1 已提交
118

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

123
**示例**
M
mayunteng_1 已提交
124

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

Z
zengyawen 已提交
131 132 133 134 135 136
## inputDevice.getDevice

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

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

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

139
**参数**
Z
zengyawen 已提交
140

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

146
**示例**
Z
zengyawen 已提交
147

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

M
mayunteng_1 已提交
155 156
## inputDevice.getDevice

Z
zengyawen 已提交
157
getDevice(deviceId: number): Promise&lt;InputDeviceData&gt;
M
mayunteng_1 已提交
158 159 160

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

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

163
**参数**
H
hungry_feiwei 已提交
164

H
HelloCrease 已提交
165 166 167
| 参数       | 类型     | 必填   | 说明           |
| -------- | ------ | ---- | ------------ |
| deviceId | number | 是    | 需要获取信息的设备id。 |
H
hungry_feiwei 已提交
168

169
**返回值**
M
mayunteng_1 已提交
170

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

175
**示例**
M
mayunteng_1 已提交
176

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

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

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

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

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

192
**参数**
H
hungry_feiwei 已提交
193

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

200
**示例**
H
hungry_feiwei 已提交
201 202

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

H
hungry_feiwei 已提交
209
## inputDevice.supportKeys<sup>9+</sup>
H
hungry_feiwei 已提交
210

H
hungry_feiwei 已提交
211
supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;): Promise&lt;Array&lt;boolean&gt;&gt;
H
hungry_feiwei 已提交
212

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

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

217
**参数**
H
hungry_feiwei 已提交
218

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

224
**返回值**
M
mayunteng_1 已提交
225

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

230
**示例**
M
mayunteng_1 已提交
231 232

```js
H
hungry_feiwei 已提交
233 234 235 236
// 示例查询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 已提交
237 238
```

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

H
hungry_feiwei 已提交
241
getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void
H
hungry_feiwei 已提交
242 243 244

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

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

247
**参数**
H
hungry_feiwei 已提交
248

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

254
**示例**
H
hungry_feiwei 已提交
255 256

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

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

H
hungry_feiwei 已提交
265
getKeyboardType(deviceId: number): Promise&lt;KeyboardType&gt;
H
hungry_feiwei 已提交
266 267 268

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

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

271
**返回值**
H
hungry_feiwei 已提交
272

H
HelloCrease 已提交
273 274
| 参数                                       | 说明                  |
| ---------------------------------------- | ------------------- |
275
| Promise&lt;[KeyboardType](#keyboardtype9)&gt; | Promise实例,用于异步获取结果。 |
H
hungry_feiwei 已提交
276

277
**示例**
H
hungry_feiwei 已提交
278 279

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

H
hungry_feiwei 已提交
286
## DeviceListener<sup>9+</sup>
H
hungry_feiwei 已提交
287 288 289

输入设备的描述信息。

H
HelloCrease 已提交
290
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
291

S
shaoziyun 已提交
292 293 294 295
| 名称       | 参数类型                        | 说明                                |
| -------- | --------------------------- | --------------------------------- |
| type     | [ChangedType](#changedtype) | 表示输入设备插入或者移除。                     |
| deviceId | number                      | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。 |
H
hungry_feiwei 已提交
296

Z
zengyawen 已提交
297 298 299 300
## InputDeviceData

输入设备的描述信息。

H
HelloCrease 已提交
301
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
302

H
HelloCrease 已提交
303 304 305 306
| 名称                   | 参数类型                                   | 说明                                       |
| -------------------- | -------------------------------------- | ---------------------------------------- |
| id                   | number                                 | 输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。        |
| name                 | string                                 | 输入设备的名字。                                 |
H
hungry_feiwei 已提交
307
| sources              | Array&lt;[SourceType](#sourcetype)&gt; | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |
H
HelloCrease 已提交
308 309 310 311 312 313 314
| 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 已提交
315 316

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

318
输入设备的轴类型。
H
hungry_feiwei 已提交
319

H
HelloCrease 已提交
320
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
321

H
HelloCrease 已提交
322 323 324 325 326 327 328 329 330 331 332
| 名称          | 参数类型   | 说明              |
| ----------- | ------ | --------------- |
| 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 已提交
333 334 335

## AxisRange

336
输入设备的轴信息。
M
mayunteng_1 已提交
337

H
HelloCrease 已提交
338
**系统能力**: SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
339

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

## SourceType

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

H
HelloCrease 已提交
354
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
Z
zengyawen 已提交
355

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

365
## ChangedType
H
hungry_feiwei 已提交
366 367 368

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

H
HelloCrease 已提交
369
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
H
hungry_feiwei 已提交
370

H
HelloCrease 已提交
371 372 373 374
| 名称     | 参数类型   | 说明        |
| ------ | ------ | --------- |
| add    | string | 表示输入设备插入。 |
| remove | string | 表示输入设备移除。 |
H
hungry_feiwei 已提交
375

H
hungry_feiwei 已提交
376
## KeyboardType<sup>9+</sup>
M
mayunteng_1 已提交
377

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

H
HelloCrease 已提交
380
**系统能力**:SystemCapability.MultimodalInput.Input.InputDevice
M
mayunteng_1 已提交
381

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