js-apis-inputdevice.md 30.0 KB
Newer Older
1
# @ohos.multimodalInput.inputDevice (输入设备)
Z
zengyawen 已提交
2 3


M
mayunteng_1 已提交
4
输入设备管理模块,用于监听输入设备连接和断开状态,查询输入设备相关信息。
Z
zengyawen 已提交
5 6


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';
```

M
mayunteng_1 已提交
19 20 21 22
## inputDevice.getDeviceList<sup>9+</sup>

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

M
mayunteng_1 已提交
23
获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
M
mayunteng_1 已提交
24 25 26 27 28

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

**参数**

M
mayunteng_1 已提交
29
| 参数名     | 类型                                     | 必填 | 说明                                     |
M
mayunteng_1 已提交
30 31
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是   | 回调函数,异步返回所有输入设备的id列表。 |
M
mayunteng_1 已提交
32 33 34 35 36 37 38

**示例**

```js
try {
  inputDevice.getDeviceList((error, ids) => {
    if (error) {
M
mayunteng_1 已提交
39
      console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
40 41
      return;
    }
M
mayunteng_1 已提交
42
    console.log(`Device id list: ${JSON.stringify(ids)}`);
M
mayunteng_1 已提交
43 44
  });
} catch (error) {
M
mayunteng_1 已提交
45
  console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
46 47 48 49 50 51 52
}
```

## inputDevice.getDeviceList<sup>9+</sup>

getDeviceList(): Promise&lt;Array&lt;number&gt;&gt;

M
mayunteng_1 已提交
53
获取所有输入设备的id列表,使用Promise异步方式返回结果。
M
mayunteng_1 已提交
54 55 56 57 58

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

**返回值**

M
mayunteng_1 已提交
59 60 61
| 参数                               | 说明                                        |
| ---------------------------------- | ------------------------------------------- |
| Promise&lt;Array&lt;number&gt;&gt; | Promise对象,异步返回所有输入设备的id列表。 |
M
mayunteng_1 已提交
62 63 64 65 66

**示例**

```js
try {
M
mengwei 已提交
67
  inputDevice.getDeviceList().then((ids: Array<number>) => {
M
mayunteng_1 已提交
68
    console.log(`Device id list: ${JSON.stringify(ids)}`);
M
mayunteng_1 已提交
69 70
  });
} catch (error) {
M
mayunteng_1 已提交
71
  console.log(`Failed to get device id list, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
72 73 74 75 76 77 78
}
```

## inputDevice.getDeviceInfo<sup>9+</sup>

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

M
mayunteng_1 已提交
79
获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
M
mayunteng_1 已提交
80 81 82 83 84

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

**参数**

M
mayunteng_1 已提交
85
| 参数名     | 类型                                                     | 必填 | 说明                                    |
M
mayunteng_1 已提交
86
| -------- | -------------------------------------------------------- | ---- | --------------------------------------- |
M
mayunteng_1 已提交
87 88
| deviceId | number                                                   | 是   | 输入设备id。                  |
| callback | AsyncCallback&lt;[InputDeviceData](#inputdevicedata)&gt; | 是   | 回调函数,异步返回输入设备信息。 |
M
mayunteng_1 已提交
89 90 91 92

**示例**

```js
M
mayunteng_1 已提交
93
// 获取输入设备id为1的设备信息。
M
mayunteng_1 已提交
94
try {
M
mayunteng_1 已提交
95
  inputDevice.getDeviceInfo(1, (error, deviceData) => {
M
mayunteng_1 已提交
96
    if (error) {
M
mayunteng_1 已提交
97
      console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
98 99
      return;
    }
M
mayunteng_1 已提交
100
    console.log(`Device info: ${JSON.stringify(deviceData)}`);
M
mayunteng_1 已提交
101 102
  });
} catch (error) {
M
mayunteng_1 已提交
103
  console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
104 105 106 107 108 109 110
}
```

## inputDevice.getDeviceInfo<sup>9+</sup>

getDeviceInfo(deviceId: number): Promise&lt;InputDeviceData&gt;

M
mayunteng_1 已提交
111
获取指定输入设备的信息,使用Promise异步方式返回结果。
M
mayunteng_1 已提交
112 113 114 115 116

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

**参数**

M
mayunteng_1 已提交
117
| 参数名     | 类型   | 必填 | 说明                   |
M
mayunteng_1 已提交
118
| -------- | ------ | ---- | ---------------------- |
M
mayunteng_1 已提交
119
| deviceId | number | 是   | 输入设备id。 |
M
mayunteng_1 已提交
120 121 122 123 124

**返回值**

| 参数                                               | 说明                            |
| -------------------------------------------------- | ------------------------------- |
M
mayunteng_1 已提交
125
| Promise&lt;[InputDeviceData](#inputdevicedata)&gt; | Promise对象,异步返回输入设备信息。 |
M
mayunteng_1 已提交
126 127 128 129

**示例**

```js
M
mayunteng_1 已提交
130
// 获取输入设备id为1的设备信息。
M
mayunteng_1 已提交
131
try {
M
mayunteng_1 已提交
132 133
  inputDevice.getDeviceInfo(1).then((deviceData) => {
    console.log(`Device info: ${JSON.stringify(deviceData)}`);
M
mayunteng_1 已提交
134 135
  });
} catch (error) {
M
mayunteng_1 已提交
136
  console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
137 138 139
}
```

H
hungry_feiwei 已提交
140
## inputDevice.on<sup>9+</sup>
H
hungry_feiwei 已提交
141

M
mayunteng_1 已提交
142
on(type: "change", listener: Callback&lt;DeviceListener&gt;): void
H
hungry_feiwei 已提交
143

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

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

148
**参数**
H
hungry_feiwei 已提交
149

M
mayunteng_1 已提交
150
| 参数名       | 类型                                       | 必填   | 说明          |
H
HelloCrease 已提交
151 152
| -------- | ---------------------------------------- | ---- | ----------- |
| type     | string                                   | 是    | 输入设备的事件类型。  |
M
mayunteng_1 已提交
153
| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 是    | 回调函数,异步上报输入设备热插拔事件。 |
H
hungry_feiwei 已提交
154

155
**示例**
H
hungry_feiwei 已提交
156 157

```js
M
mayunteng_1 已提交
158
let isPhysicalKeyboardExist = true;
M
mayunteng_1 已提交
159
try {
M
mengwei 已提交
160
  inputDevice.on("change", (data: inputDevice.DeviceListener) => {
M
mayunteng_1 已提交
161
    console.log(`Device event info: ${JSON.stringify(data)}`);
M
mengwei 已提交
162
    inputDevice.getKeyboardType(data.deviceId, (err: Error, type: inputDevice.KeyboardType) => {
M
mayunteng_1 已提交
163 164
      console.log("The keyboard type is: " + type);
      if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
M
mayunteng_1 已提交
165 166
        // 监听物理键盘已连接。
        isPhysicalKeyboardExist = true;
M
mayunteng_1 已提交
167
      } else if (type == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
M
mayunteng_1 已提交
168 169 170
        // 监听物理键盘已断开。
        isPhysicalKeyboardExist = false;
      }
H
hungry_feiwei 已提交
171
    });
M
mayunteng_1 已提交
172 173 174
  });
  // 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
} catch (error) {
M
mayunteng_1 已提交
175
  console.log(`Get device info failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
176
}
H
hungry_feiwei 已提交
177 178
```

H
hungry_feiwei 已提交
179
## inputDevice.off<sup>9+</sup>
H
hungry_feiwei 已提交
180

M
mayunteng_1 已提交
181
off(type: "change", listener?: Callback&lt;DeviceListener&gt;): void
H
hungry_feiwei 已提交
182

183
取消监听输入设备的热插拔事件。在应用退出前调用,取消监听。
H
hungry_feiwei 已提交
184

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

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

M
mayunteng_1 已提交
189
| 参数名       | 类型                                       | 必填   | 说明          |
H
HelloCrease 已提交
190 191
| -------- | ---------------------------------------- | ---- | ----------- |
| type     | string                                   | 是    | 输入设备的事件类型。  |
M
mayunteng_1 已提交
192
| listener | Callback&lt;[DeviceListener](#devicelistener9)&gt; | 否    | 取消监听的回调函数。 |
H
hungry_feiwei 已提交
193

194
**示例**
H
hungry_feiwei 已提交
195 196

```js
M
mayunteng_1 已提交
197
function callback(data) {
M
mayunteng_1 已提交
198
  console.log(`Report device event info: ${JSON.stringify(data, [`type`, `deviceId`])}`);
M
mayunteng_1 已提交
199
};
H
hungry_feiwei 已提交
200

M
mayunteng_1 已提交
201
try {
M
mayunteng_1 已提交
202
  inputDevice.on("change", callback);
M
mayunteng_1 已提交
203
} catch (error) {
M
mayunteng_1 已提交
204
  console.log(`Listen device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
205
}
206

M
mayunteng_1 已提交
207
// 取消指定的监听。
M
mayunteng_1 已提交
208
try {
M
mayunteng_1 已提交
209
  inputDevice.off("change", callback);
M
mayunteng_1 已提交
210
} catch (error) {
M
mayunteng_1 已提交
211
  console.log(`Cancel listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
212
}
H
hungry_feiwei 已提交
213

214
// 取消所有监听。
M
mayunteng_1 已提交
215 216 217
try {
  inputDevice.off("change");
} catch (error) {
M
mayunteng_1 已提交
218
  console.log(`Cancel all listening device event failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
219
}
H
hungry_feiwei 已提交
220
```
Z
zengyawen 已提交
221

M
mayunteng_1 已提交
222
## inputDevice.getDeviceIds<sup>(deprecated)</sup>
Z
zengyawen 已提交
223 224 225

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

M
mayunteng_1 已提交
226
获取所有输入设备的id列表,使用AsyncCallback异步方式返回结果。
Z
zengyawen 已提交
227

M
mayunteng_1 已提交
228 229
从API version 9 开始不再维护,建议使用[inputDevice.getDeviceList](#inputdevicegetdevicelist9)代替。

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

232
**参数**
Z
zengyawen 已提交
233

M
mayunteng_1 已提交
234
| 参数名     | 类型                                     | 必填 | 说明                                     |
M
mayunteng_1 已提交
235 236
| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
| callback | AsyncCallback&lt;Array&lt;number&gt;&gt; | 是   | 回调函数,异步返回所有输入设备的id列表。 |
M
mayunteng_1 已提交
237

238
**示例**
Z
zengyawen 已提交
239

240
```js
M
mengwei 已提交
241
inputDevice.getDeviceIds((error: Error, ids: Array<number>) => {
M
mayunteng_1 已提交
242 243 244 245 246
  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)}`);
H
hungry_feiwei 已提交
247
});
Z
zengyawen 已提交
248 249
```

M
mayunteng_1 已提交
250
## inputDevice.getDeviceIds<sup>(deprecated)</sup>
M
mayunteng_1 已提交
251

Z
zengyawen 已提交
252
getDeviceIds(): Promise&lt;Array&lt;number&gt;&gt;
M
mayunteng_1 已提交
253

M
mayunteng_1 已提交
254
获取所有输入设备的id列表,使用Promise异步方式返回结果。
M
mayunteng_1 已提交
255

M
mayunteng_1 已提交
256 257
从API version 9 开始不再维护,建议使用[inputDevice.getDeviceList](#inputdevicegetdevicelist9)代替。

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

260
**返回值**
M
mayunteng_1 已提交
261

M
mayunteng_1 已提交
262 263 264
| 参数                               | 说明                                        |
| ---------------------------------- | ------------------------------------------- |
| Promise&lt;Array&lt;number&gt;&gt; | Promise对象,异步返回所有输入设备的id列表。 |
M
mayunteng_1 已提交
265

266
**示例**
M
mayunteng_1 已提交
267

268
```js
M
mengwei 已提交
269
inputDevice.getDeviceIds().then((ids: Array<number>) => {
M
mayunteng_1 已提交
270
  console.log(`Device id list: ${JSON.stringify(ids)}`);
H
hungry_feiwei 已提交
271
});
M
mayunteng_1 已提交
272 273
```

M
mayunteng_1 已提交
274
## inputDevice.getDevice<sup>(deprecated)</sup>
Z
zengyawen 已提交
275 276 277

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

M
mayunteng_1 已提交
278
获取指定输入设备的信息,使用AsyncCallback异步方式返回结果。
Z
zengyawen 已提交
279

M
mayunteng_1 已提交
280 281
从API version 9 开始不再维护,建议使用[inputDevice.getDeviceInfo](#inputdevicegetdeviceinfo9)代替。

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

284
**参数**
Z
zengyawen 已提交
285

M
mayunteng_1 已提交
286
| 参数名     | 类型                                                     | 必填 | 说明                             |
M
mayunteng_1 已提交
287 288 289
| -------- | -------------------------------------------------------- | ---- | -------------------------------- |
| deviceId | number                                                   | 是   | 输入设备id。                     |
| callback | AsyncCallback&lt;[InputDeviceData](#inputdevicedata)&gt; | 是   | 回调函数,异步返回输入设备信息。 |
Z
zengyawen 已提交
290

291
**示例**
Z
zengyawen 已提交
292

293
```js
M
mayunteng_1 已提交
294
// 获取输入设备id为1的设备信息。
M
mayunteng_1 已提交
295
inputDevice.getDevice(1, (error, deviceData) => {
M
mayunteng_1 已提交
296 297 298 299 300
  if (error) {
    console.log(`Failed to get device info, error: ${JSON.stringify(error, [`code`, `message`])}`);
    return;
  }
  console.log(`Device info: ${JSON.stringify(deviceData)}`);
H
hungry_feiwei 已提交
301
});
Z
zengyawen 已提交
302 303
```

M
mayunteng_1 已提交
304
## inputDevice.getDevice<sup>(deprecated)</sup>
M
mayunteng_1 已提交
305

Z
zengyawen 已提交
306
getDevice(deviceId: number): Promise&lt;InputDeviceData&gt;
M
mayunteng_1 已提交
307

M
mayunteng_1 已提交
308
获取指定输入设备的信息,使用Promise异步方式返回结果。
M
mayunteng_1 已提交
309

M
mayunteng_1 已提交
310 311
从API version 9 开始不再维护,建议使用[inputDevice.getDeviceInfo](#inputdevicegetdeviceinfo9)代替。

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

314
**参数**
H
hungry_feiwei 已提交
315

M
mayunteng_1 已提交
316
| 参数名     | 类型   | 必填 | 说明         |
H
HelloCrease 已提交
317
| -------- | ------ | ---- | ------------ |
M
mayunteng_1 已提交
318
| deviceId | number | 是   | 输入设备id。 |
H
hungry_feiwei 已提交
319

320
**返回值**
M
mayunteng_1 已提交
321

M
mayunteng_1 已提交
322 323 324
| 参数                                               | 说明                                |
| -------------------------------------------------- | ----------------------------------- |
| Promise&lt;[InputDeviceData](#inputdevicedata)&gt; | Promise对象,异步返回输入设备信息。 |
M
mayunteng_1 已提交
325

326
**示例**
M
mayunteng_1 已提交
327

328
```js
M
mayunteng_1 已提交
329
// 获取输入设备id为1的设备信息。
M
mayunteng_1 已提交
330
inputDevice.getDevice(1).then((deviceData) => {
M
mayunteng_1 已提交
331
  console.log(`Device info: ${JSON.stringify(deviceData)}`);
H
hungry_feiwei 已提交
332
});
M
mayunteng_1 已提交
333 334
```

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

M
mayunteng_1 已提交
337
supportKeys(deviceId: number, keys: Array&lt;KeyCode&gt;, callback: AsyncCallback &lt;Array&lt;boolean&gt;&gt;): void
Z
zengyawen 已提交
338

M
mayunteng_1 已提交
339
获取输入设备是否支持指定的键码值,使用AsyncCallback异步方式返回结果。
M
mayunteng_1 已提交
340

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

343
**参数**
H
hungry_feiwei 已提交
344

M
mayunteng_1 已提交
345
| 参数名     | 类型                                      | 必填 | 说明                                                   |
M
mayunteng_1 已提交
346 347 348 349
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------ |
| deviceId | number                                    | 是   | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
| keys     | Array&lt;KeyCode&gt;                      | 是   | 需要查询的键码值,最多支持5个按键查询。                |
| callback | AsyncCallback&lt;Array&lt;boolean&gt;&gt; | 是   | 回调函数,异步返回查询结果。                           |
H
hungry_feiwei 已提交
350

351
**示例**
H
hungry_feiwei 已提交
352 353

```js
M
mayunteng_1 已提交
354
// 查询id为1的输入设备对于17、22和2055按键的支持情况。
M
mayunteng_1 已提交
355
try {
M
mengwei 已提交
356
  inputDevice.supportKeys(1, [17, 22, 2055], (error: Error, supportResult: Array<boolean>) => {
M
mayunteng_1 已提交
357
    console.log(`Query result: ${JSON.stringify(supportResult)}`);
M
mayunteng_1 已提交
358 359
  });
} catch (error) {
M
mayunteng_1 已提交
360
  console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
361
}
H
hungry_feiwei 已提交
362 363
```

H
hungry_feiwei 已提交
364
## inputDevice.supportKeys<sup>9+</sup>
H
hungry_feiwei 已提交
365

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

M
mayunteng_1 已提交
368
获取输入设备是否支持指定的键码值,使用Promise异步方式返回结果。
M
mayunteng_1 已提交
369

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

372
**参数**
H
hungry_feiwei 已提交
373

M
mayunteng_1 已提交
374
| 参数名     | 类型                 | 必填 | 说明                                                   |
M
mayunteng_1 已提交
375 376 377
| -------- | -------------------- | ---- | ------------------------------------------------------ |
| deviceId | number               | 是   | 输入设备id,同一个物理设备反复插拔,设备id会发生变化。 |
| keys     | Array&lt;KeyCode&gt; | 是   | 需要查询的键码值,最多支持5个按键查询。                |
H
hungry_feiwei 已提交
378

379
**返回值**
M
mayunteng_1 已提交
380

M
mayunteng_1 已提交
381 382 383
| 参数                                | 说明                            |
| ----------------------------------- | ------------------------------- |
| Promise&lt;Array&lt;boolean&gt;&gt; | Promise对象,异步返回查询结果。 |
M
mayunteng_1 已提交
384

385
**示例**
M
mayunteng_1 已提交
386 387

```js
M
mayunteng_1 已提交
388
// 查询id为1的输入设备对于17、22和2055按键的支持情况。
M
mayunteng_1 已提交
389
try {
M
mayunteng_1 已提交
390 391
  inputDevice.supportKeys(1, [17, 22, 2055]).then((supportResult) => {
    console.log(`Query result: ${JSON.stringify(supportResult)}`);
M
mayunteng_1 已提交
392 393
  });
} catch (error) {
M
mayunteng_1 已提交
394
  console.log(`Query failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
395
}
M
mayunteng_1 已提交
396 397
```

H
hungry_feiwei 已提交
398
## inputDevice.getKeyboardType<sup>9+</sup>
H
hungry_feiwei 已提交
399

H
hungry_feiwei 已提交
400
getKeyboardType(deviceId: number, callback: AsyncCallback&lt;KeyboardType&gt;): void
H
hungry_feiwei 已提交
401

M
mayunteng_1 已提交
402
获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。
H
hungry_feiwei 已提交
403

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

406
**参数**
H
hungry_feiwei 已提交
407

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

413
**示例**
H
hungry_feiwei 已提交
414 415

```js
M
mayunteng_1 已提交
416
// 查询id为1的输入设备的键盘类型。
M
mayunteng_1 已提交
417
try {
M
mayunteng_1 已提交
418
  inputDevice.getKeyboardType(1, (error, type) => {
M
mayunteng_1 已提交
419
    if (error) {
M
mayunteng_1 已提交
420
      console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
421 422
      return;
    }
M
mayunteng_1 已提交
423
    console.log(`Keyboard type: ${JSON.stringify(type)}`);
M
mayunteng_1 已提交
424 425
  });
} catch (error) {
M
mayunteng_1 已提交
426
  console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
427
}
H
hungry_feiwei 已提交
428 429
```

H
hungry_feiwei 已提交
430
## inputDevice.getKeyboardType<sup>9+</sup>
H
hungry_feiwei 已提交
431

H
hungry_feiwei 已提交
432
getKeyboardType(deviceId: number): Promise&lt;KeyboardType&gt;
H
hungry_feiwei 已提交
433

M
mayunteng_1 已提交
434
获取输入设备的键盘类型,使用AsyncCallback异步方式返回结果。
H
hungry_feiwei 已提交
435

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

M
mayunteng_1 已提交
438 439
**参数**

M
mayunteng_1 已提交
440
| 参数名     | 类型   | 必填 | 说明                                                         |
M
mayunteng_1 已提交
441 442 443
| -------- | ------ | ---- | ------------------------------------------------------------ |
| deviceId | number | 是   | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |

444
**返回值**
H
hungry_feiwei 已提交
445

M
mayunteng_1 已提交
446 447 448
| 参数                                          | 说明                            |
| --------------------------------------------- | ------------------------------- |
| Promise&lt;[KeyboardType](#keyboardtype9)&gt; | Promise对象,异步返回查询结果。 |
H
hungry_feiwei 已提交
449

450
**示例**
H
hungry_feiwei 已提交
451 452

```js
H
hungry_feiwei 已提交
453
// 示例查询设备id为1的设备键盘类型。
M
mayunteng_1 已提交
454
try {
M
mengwei 已提交
455
  inputDevice.getKeyboardType(1).then((type: number) => {
M
mayunteng_1 已提交
456
    console.log(`Keyboard type: ${JSON.stringify(type)}`);
M
mayunteng_1 已提交
457 458
  });
} catch (error) {
M
mayunteng_1 已提交
459
  console.log(`Failed to get keyboard type, error: ${JSON.stringify(error, [`code`, `message`])}`);
M
mayunteng_1 已提交
460
}
H
hungry_feiwei 已提交
461 462
```

W
wangli (A) 已提交
463 464 465 466 467 468 469 470
## inputDevice.setKeyboardRepeatDelay<sup>10+</sup>

setKeyboardRepeatDelay(delay: number, callback: AsyncCallback&lt;void&gt;): void

设置键盘按键的重复时延,使用AsyncCallback异步方式返回结果。

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

471 472
**系统API**:此接口为系统接口。

W
wangli (A) 已提交
473 474 475 476
**参数**

| 参数名     | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
W
wangli 已提交
477
| delay    | number                    | 是    | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
W
wangli (A) 已提交
478 479 480 481 482 483
| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数。 |

**示例**

```js
try {
W
wangli 已提交
484
  inputDevice.setKeyboardRepeatDelay(350, (error) => {
W
wangli (A) 已提交
485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503
    if (error) {
      console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
      return;
    }
    console.log(`Set keyboard repeat delay success`);
  });
} catch (error) {
  console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

## inputDevice.setKeyboardRepeatDelay<sup>10+</sup>

setKeyboardRepeatDelay(delay: number): Promise&lt;void&gt;

设置键盘按键的重复时延,使用Promise异步方式返回结果。

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

504 505
**系统API**:此接口为系统接口。

W
wangli (A) 已提交
506 507 508 509
**参数**

| 参数名    | 类型     | 必填   | 说明                                  |
| ----- | ------ | ---- | ----------------------------------- |
W
wangli 已提交
510
| delay | number | 是    | 键盘按键重复延迟时间,默认值500ms,调节范围[300ms,1000ms]。 |
W
wangli (A) 已提交
511 512 513 514 515 516 517 518 519 520 521

**返回值**

| 参数                  | 说明               |
| ------------------- | ---------------- |
| Promise&lt;void&gt; | Promise对象。 |

**示例**

```js
try {
W
wangli 已提交
522
  inputDevice.setKeyboardRepeatDelay(350).then(() => {
W
wangli (A) 已提交
523 524 525 526 527 528 529
    console.log(`Set keyboard repeat delay success`);
  });
} catch (error) {
  console.log(`Set keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

530 531 532 533 534 535 536 537
## inputDevice.getKeyboardRepeatDelay<sup>10+</sup>

getKeyboardRepeatDelay(callback: AsyncCallback&lt;number&gt;): void

获取键盘按键的重复时延,使用AsyncCallback异步方式返回结果。

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

538 539
**系统API**:此接口为系统接口。

540 541 542 543 544 545 546 547 548 549
**参数**

| 参数名     | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| callback   | AsyncCallback&lt;number&gt;                    | 是    | 回调函数,异步返回键盘按键重复延迟时间。 |

**示例**

```js
try {
M
mengwei 已提交
550
  inputDevice.getKeyboardRepeatDelay((error: Error, delay: number) => {
551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569
    if (error) {
      console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
      return;
    }
    console.log(`Get keyboard repeat delay success`);
  });
} catch (error) {
  console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

## inputDevice.getKeyboardRepeatDelay<sup>10+</sup>

getKeyboardRepeatDelay(): Promise&lt;number&gt;

获取键盘按键的重复时延,使用Promise异步方式返回结果。

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

570 571
**系统API**:此接口为系统接口。

572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589
**返回值**

| 参数                    | 说明                  |
| --------------------- | ------------------- |
| Promise&lt;number&gt; | Promise实例,异步返回键盘按键的重复时延。 |

**示例**

```js
try {
  inputDevice.getKeyboardRepeatDelay().then(delay => {
    console.log(`Get keyboard repeat delay success`);
  });
} catch (error) {
  console.log(`Get keyboard repeat delay failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

W
wangli (A) 已提交
590 591 592 593 594 595 596 597
## inputDevice.setKeyboardRepeatRate<sup>10+</sup>

setKeyboardRepeatRate(rate: number, callback: AsyncCallback&lt;void&gt;): void

设置键盘按键的重复速率,使用AsyncCallback异步方式返回结果。

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

598 599
**系统API**:此接口为系统接口。

W
wangli (A) 已提交
600 601 602 603
**参数**

| 参数名     | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
W
wangli 已提交
604
| rate    | number                    | 是    | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
W
wangli (A) 已提交
605 606 607 608 609 610
| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数。 |

**示例**

```js
try {
W
wangli 已提交
611
  inputDevice.setKeyboardRepeatRate(60, (error) => {
W
wangli (A) 已提交
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630
    if (error) {
      console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
      return;
    }
    console.log(`Set keyboard repeat rate success`);
  });
} catch (error) {
  console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

## inputDevice.setKeyboardRepeatRate<sup>10+</sup>

setKeyboardRepeatRate(rate: number): Promise&lt;void&gt;

设置键盘按键的重复速率,使用Promise异步方式返回结果。

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

631 632
**系统API**:此接口为系统接口。

W
wangli (A) 已提交
633 634 635 636
**参数**

| 参数名    | 类型     | 必填   | 说明                                  |
| ----- | ------ | ---- | ----------------------------------- |
W
wangli 已提交
637
| rate | number | 是    | 键盘按键重复速率,默认值50ms/次,调节范围[36ms/次,100ms/次]。 |
W
wangli (A) 已提交
638 639 640 641 642 643 644 645 646 647 648

**返回值**

| 参数                  | 说明               |
| ------------------- | ---------------- |
| Promise&lt;void&gt; | Promise对象。 |

**示例**

```js
try {
W
wangli 已提交
649
  inputDevice.setKeyboardRepeatRate(60).then(() => {
W
wangli (A) 已提交
650 651 652 653 654 655 656
    console.log(`Set keyboard repeat rate success`);
  });
} catch (error) {
  console.log(`Set keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

657 658 659 660 661 662 663 664
## inputDevice.getKeyboardRepeatRate<sup>10+</sup>

getKeyboardRepeatRate(callback: AsyncCallback&lt;number&gt;): void

获取键盘按键的重复速率,使用AsyncCallback异步方式返回结果。

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

665 666
**系统API**:此接口为系统接口。

667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696
**参数**

| 参数名       | 类型                          | 必填   | 说明             |
| -------- | --------------------------- | ---- | -------------- |
| callback | AsyncCallback&lt;number&gt; | 是    | 回调函数,异步返回键盘按键的重复速率。 |

**示例**

```js
try {
  inputDevice.getKeyboardRepeatRate((error, rate) => {
    if (error) {
      console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
      return;
    }
    console.log(`Get keyboard repeat rate success`);
  });
} catch (error) {
  console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

## inputDevice.getKeyboardRepeatRate<sup>10+</sup>

getKeyboardRepeatRate(): Promise&lt;number&gt;

获取键盘按键的重复速率,使用Promise异步方式返回结果。

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

697 698
**系统API**:此接口为系统接口。

699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716
**返回值**

| 参数                    | 说明                  |
| --------------------- | ------------------- |
| Promise&lt;number&gt; | Promise实例,异步返回键盘按键的重复速率。 |

**示例**

```js
try {
  inputDevice.getKeyboardRepeatRate().then(rate => {
    console.log(`Get keyboard repeat rate success`);
  });
} catch (error) {
  console.log(`Get keyboard repeat rate failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

H
hungry_feiwei 已提交
717
## DeviceListener<sup>9+</sup>
H
hungry_feiwei 已提交
718

M
mayunteng_1 已提交
719
输入设备热插拔的描述信息。
H
hungry_feiwei 已提交
720

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

M
mayunteng_1 已提交
723 724 725 726
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
| type     | [ChangedType](#changedtype) | 是 | 否 | 输入设备插入或者移除。|
| deviceId | number                      | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
H
hungry_feiwei 已提交
727

Z
zengyawen 已提交
728 729 730 731
## InputDeviceData

输入设备的描述信息。

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

M
mayunteng_1 已提交
734 735 736 737 738
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
| id                   | number                                 | 是 | 否 | 输入设备的唯一标识,同一个物理设备反复插拔,设备id会发生变化。 |
| name                 | string                                 | 是 | 否 | 输入设备的名字。                                             |
| sources              | Array&lt;[SourceType](#sourcetype)&gt; | 是 | 否 | 输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。 |
M
mayunteng_1 已提交
739
| axisRanges           | Array&lt;[AxisRange](#axisrange)&gt;  | 是 | 否 | 输入设备的轴信息。                                           |
M
mayunteng_1 已提交
740 741 742 743 744 745
| 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 已提交
746 747

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

749
输入设备的轴类型。
H
hungry_feiwei 已提交
750

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

M
mayunteng_1 已提交
753 754
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
H
houchengyu2022 已提交
755 756 757 758
| touchmajor  | string | 是 | 否 | 表示touchmajor轴。  |
| touchminor  | string | 是 | 否 | 表示touchminor轴。  |
| toolminor   | string | 是 | 否 | 表示toolminor轴。   |
| toolmajor   | string | 是 | 否 | 表示toolmajor轴。   |
M
mayunteng_1 已提交
759 760 761 762
| orientation | string | 是 | 否 | 表示orientation轴。 |
| pressure    | string | 是 | 否 | 表示pressure轴。    |
| x           | string | 是 | 否 | 表示x轴。           |
| y           | string | 是 | 否 | 表示y轴。           |
M
mengwei 已提交
763
| null        | string | 是 | 否 | 无。              |
M
mayunteng_1 已提交
764 765 766

## AxisRange

767
输入设备的轴信息。
M
mayunteng_1 已提交
768

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

M
mayunteng_1 已提交
771 772 773 774 775 776 777 778 779
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
| source                  | [SourceType](#sourcetype) | 是 | 否 | 轴的输入源类型。 |
| axis                    | [AxisType](#axistype9)    | 是 | 否 | 轴的类型。    |
| max                     | number                    | 是 | 否 | 轴的最大值。   |
| min                     | number                    | 是 | 否 | 轴的最小值。   |
| fuzz<sup>9+</sup>       | number                    | 是 | 否 | 轴的模糊值。   |
| flat<sup>9+</sup>       | number                    | 是 | 否 | 轴的基准值。   |
| resolution<sup>9+</sup> | number                    | 是 | 否 | 轴的分辨率。   |
Z
zengyawen 已提交
780

M
mayunteng_1 已提交
781
## SourceType<sup>9+</sup>
Z
zengyawen 已提交
782

M
mayunteng_1 已提交
783
轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的输入源就是鼠标。
Z
zengyawen 已提交
784

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

M
mayunteng_1 已提交
787 788 789 790 791 792 793 794
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
| keyboard    | string | 是 | 否 | 表示输入设备是键盘。  |
| touchscreen | string | 是 | 否 | 表示输入设备是触摸屏。 |
| mouse       | string | 是 | 否 | 表示输入设备是鼠标。  |
| trackball   | string | 是 | 否 | 表示输入设备是轨迹球。 |
| touchpad    | string | 是 | 否 | 表示输入设备是触摸板。 |
| joystick    | string | 是 | 否 | 表示输入设备是操纵杆。 |
M
mayunteng_1 已提交
795

M
mayunteng_1 已提交
796
## ChangedType<sup>9+</sup>
H
hungry_feiwei 已提交
797 798 799

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

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

M
mayunteng_1 已提交
802 803 804 805
| 名称        | 类型   | 可读   | 可写   | 说明      |
| --------- | ------ | ---- | ---- | ------- |
| add    | string | 是 | 否 | 表示输入设备插入。 |
| remove | string | 是 | 否 | 表示输入设备移除。 |
H
hungry_feiwei 已提交
806

H
hungry_feiwei 已提交
807
## KeyboardType<sup>9+</sup>
M
mayunteng_1 已提交
808

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

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

M
mayunteng_1 已提交
813 814 815 816 817 818 819 820
| 名称                  | 值    | 说明        |
| ------------------- | ---- | --------- |
| NONE                | 0    | 表示无按键设备。  |
| UNKNOWN             | 1    | 表示未知按键设备。 |
| ALPHABETIC_KEYBOARD | 2    | 表示全键盘设备。  |
| DIGITAL_KEYBOARD    | 3    | 表示小键盘设备。  |
| HANDWRITING_PEN     | 4    | 表示手写笔设备。  |
| REMOTE_CONTROL      | 5    | 表示遥控器设备。  |