輸入設(shè)備
輸入設(shè)備管理模塊,用于監(jiān)聽輸入設(shè)備連接、斷開和變化,并查看輸入設(shè)備相關(guān)信息。比如監(jiān)聽鼠標(biāo)插拔,并獲取鼠標(biāo)的id、name和指針移動(dòng)速度等信息。
說明 : 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
導(dǎo)入模塊
import inputDevice from '@ohos.multimodalInput.inputDevice';
inputDevice.on9+
on(type: “change”, listener: Callback): void
監(jiān)聽輸入設(shè)備的熱插拔事件。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 輸入設(shè)備的事件類型。 |
listener | Callback<[DeviceListener]> | 是 | 可上報(bào)的輸入設(shè)備事件。 |
示例 :
let isPhysicalKeyboardExist = true;
inputDevice.on("change", (data) = > {
console.log("type: " + data.type + ", deviceId: " + data.deviceId);
inputDevice.getKeyboardType(data.deviceId, (err, ret) = > {
console.log("The keyboard type of the device is: " + ret);
if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {
// 監(jiān)聽物理鍵盤已連接。
isPhysicalKeyboardExist = true;
} else if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {
// 監(jiān)聽物理鍵盤已斷開。
isPhysicalKeyboardExist = false;
}
});
});
// 根據(jù)isPhysicalKeyboardExist的值決定軟鍵盤是否彈出。
inputDevice.off9+
off(type: “change”, listener?: Callback): void
取消監(jiān)聽輸入設(shè)備的熱插拔事件。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 輸入設(shè)備的事件類型。 |
listener | Callback<[DeviceListener]> | 否 | 可上報(bào)的輸入設(shè)備事件。 |
示例 :
function listener(data) {
console.log("type: " + data.type + ", deviceId: " + data.deviceId);
}
// 單獨(dú)取消listener的監(jiān)聽。
inputDevice.off("change", listener);
// 取消所有監(jiān)聽。
inputDevice.off("change");
// 取消監(jiān)聽后,軟鍵盤默認(rèn)都彈出。
inputDevice.getDeviceIds
getDeviceIds(callback: AsyncCallback>): void
獲取所有輸入設(shè)備的id列表,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback> | 是 | 回調(diào)函數(shù)。 |
示例 :
inputDevice.getDeviceIds((ids)= >{
console.log("The device ID list is: " + ids);
});
inputDevice.getDeviceIds
getDeviceIds(): Promise>
獲取所有輸入設(shè)備的id列表,使用Promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
返回值 :
參數(shù) | 說明 |
---|---|
Promise> | Promise實(shí)例,用于異步獲取結(jié)果。 |
示例 :
inputDevice.getDeviceIds().then((ids)= >{
console.log("The device ID list is: " + ids);
});
inputDevice.getDevice
getDevice(deviceId: number, callback: AsyncCallback): void
獲取輸入設(shè)備的描述信息,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | number | 是 | 需要獲取信息的設(shè)備id。 |
callback | AsyncCallback<[InputDeviceData]> | 是 | 回調(diào)函數(shù),異步返回InputDeviceData對(duì)象。 |
示例 :
// 示例獲取設(shè)備id為1的設(shè)備name信息。
inputDevice.getDevice(1, (inputDevice)= >{
console.log("The device name is: " + inputDevice.name);
});
inputDevice.getDevice
getDevice(deviceId: number): Promise
獲取輸入設(shè)備的描述信息,使用Promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | number | 是 | 需要獲取信息的設(shè)備id。 |
返回值 :
參數(shù) | 說明 |
---|---|
Promise<[InputDeviceData]> | Promise實(shí)例,用于異步獲取結(jié)果。 |
示例 :
// 示例獲取設(shè)備id為1的設(shè)備name信息。
inputDevice.getDevice(1).then((inputDevice)= >{
console.log("The device name is: " + inputDevice.name);
});
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array, callback: Callback>): void
獲取輸入設(shè)備支持的鍵碼值,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | number | 是 | 輸入設(shè)備的唯一標(biāo)識(shí),同一個(gè)物理設(shè)備反復(fù)插拔,其設(shè)備id會(huì)發(fā)生變化。 |
keys | Array | 是 | 需要查詢的鍵碼值,最多支持5個(gè)按鍵查詢。 |
callback | Callback> | 是 | 回調(diào)函數(shù),異步返回查詢結(jié)果。 |
示例 :
// 示例查詢id為1的設(shè)備對(duì)于17、22和2055按鍵的支持情況。
inputDevice.supportKeys(1, [17, 22, 2055], (ret)= >{
console.log("The query result is as follows: " + ret);
});
inputDevice.supportKeys9+
supportKeys(deviceId: number, keys: Array): Promise>
獲取輸入設(shè)備支持的鍵碼值,使用Promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | number | 是 | 輸入設(shè)備的唯一標(biāo)識(shí),同一個(gè)物理設(shè)備反復(fù)插拔,其設(shè)備id會(huì)發(fā)生變化。 |
keys | Array | 是 | 需要查詢的鍵碼值,最多支持5個(gè)按鍵查詢。 |
返回值 :
參數(shù) | 說明 |
---|---|
Promise> | Promise實(shí)例,用于異步獲取結(jié)果。 |
示例 :
// 示例查詢id為1的設(shè)備對(duì)于17、22和2055按鍵的支持情況。
inputDevice.supportKeys(1, [17, 22, 2055]).then((ret)= >{
console.log("The query result is as follows: " + ret);
})
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number, callback: AsyncCallback): void
查詢輸入設(shè)備的鍵盤類型,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
參數(shù) :
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
deviceId | number | 是 | 輸入設(shè)備的唯一標(biāo)識(shí),同一個(gè)物理設(shè)備反復(fù)插拔,其設(shè)備id會(huì)發(fā)生變化。 |
callback | AsyncCallback<[KeyboardType]> | 是 | 回調(diào)函數(shù),異步返回查詢結(jié)果。 |
示例 :
// 示例查詢設(shè)備id為1的設(shè)備鍵盤類型。
inputDevice.getKeyboardType(1, (ret)= >{
console.log("The keyboard type of the device is: " + ret);
});
inputDevice.getKeyboardType9+
getKeyboardType(deviceId: number): Promise
查詢輸入設(shè)備的鍵盤類型,使用Promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.MultimodalInput.Input.InputDevice
返回值 :
參數(shù) | 說明 |
---|---|
Promise<[KeyboardType]> | Promise實(shí)例,用于異步獲取結(jié)果。 |
示例 :
// 示例查詢設(shè)備id為1的設(shè)備鍵盤類型。
inputDevice.getKeyboardType(1).then((ret)= >{
console.log("The keyboard type of the device is: " + ret);
})
DeviceListener9+
輸入設(shè)備的描述信息。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
type | [ChangedType] | 表示輸入設(shè)備插入或者移除。 |
deviceId | number | 輸入設(shè)備的唯一標(biāo)識(shí),同一個(gè)物理設(shè)備反復(fù)插拔,其設(shè)備id會(huì)發(fā)生變化。 |
InputDeviceData
輸入設(shè)備的描述信息。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
id | number | 輸入設(shè)備的唯一標(biāo)識(shí),同一個(gè)物理設(shè)備反復(fù)插拔,其設(shè)備id會(huì)發(fā)生變化。 |
name | string | 輸入設(shè)備的名字。 |
sources | Array<[SourceType]> | 輸入設(shè)備支持的源類型。比如有的鍵盤上附帶觸摸板,則此設(shè)備有keyboard和touchpad兩種輸入源。 |
axisRanges | Array<[AxisRanges]> | 輸入設(shè)備的軸信息。 |
bus9+ | number | 輸入設(shè)備的總線類型。 |
product9+ | number | 輸入設(shè)備的產(chǎn)品信息。 |
vendor9+ | number | 輸入設(shè)備的廠商信息。 |
version9+ | number | 輸入設(shè)備的版本信息。 |
phys9+ | string | 輸入設(shè)備的物理地址。 |
uniq9+ | string | 輸入設(shè)備的唯一標(biāo)識(shí)。 |
AxisType9+
輸入設(shè)備的軸類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
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
輸入設(shè)備的軸信息。
系統(tǒng)能力 : 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
source | [SourceType] | 軸的輸入源類型。 |
axis | [AxisType] | 軸的類型。 |
max | number | 軸的最大值。 |
min | number | 軸的最小值。 |
fuzz9+ | number | 軸的模糊值。 |
flat9+ | number | 軸的基準(zhǔn)值。 |
resolution9+ | number | 軸的分辨率。 |
SourceType
定義這個(gè)軸的輸入源類型。比如鼠標(biāo)設(shè)備可上報(bào)x軸事件,則x軸的源就是鼠標(biāo)。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
keyboard | string | 表示輸入設(shè)備是鍵盤。 |
touchscreen | string | 表示輸入設(shè)備是觸摸屏。 |
mouse | string | 表示輸入設(shè)備是鼠標(biāo)。 |
trackball | string | 表示輸入設(shè)備是軌跡球。 |
touchpad | string | 表示輸入設(shè)備是觸摸板。 |
joystick | string | 表示輸入設(shè)備是操縱桿。 |
ChangedType
定義監(jiān)聽設(shè)備熱插拔事件。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 說明 |
---|---|---|
add | string | 表示輸入設(shè)備插入。 |
remove | string | 表示輸入設(shè)備移除。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
KeyboardType9+
定義鍵盤輸入設(shè)備的類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.MultimodalInput.Input.InputDevice
名稱 | 參數(shù)類型 | 值 | 說明 |
---|---|---|---|
NONE | number | 0 | 表示無按鍵設(shè)備。 |
UNKNOWN | number | 1 | 表示未知按鍵設(shè)備。 |
ALPHABETIC_KEYBOARD | number | 2 | 表示全鍵盤設(shè)備。 |
DIGITAL_KEYBOARD | number | 3 | 表示小鍵盤設(shè)備。 |
HANDWRITING_PEN | number | 4 | 表示手寫筆設(shè)備。 |
REMOTE_CONTROL | number | 5 | 表示遙控器設(shè)備。 |
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2310瀏覽量
42743
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論