跳至主要內容

! 建立獨立硬體鍵盤物件 (key.connect_keyboard)

該函式在 20260805 以後版本方可使用

聲明

硬體鍵盤物件, 錯誤資訊 = key.connect_keyboard([設定屬性])

參數

  • 設定屬性 表型,可選參數,用於設定下列常用裝置屬性;代碼塊中的值為省略時的預設值:
{
VendorID = 0x5858,
ProductID = 0x0001,
Product = "XXTouch Keyboard",
Manufacturer = "XXTouch",
Transport = "USB",
}

還可以設定 VersionNumberSerialNumberLocationID。其它屬性不保證生效。

回傳值

  • 硬體鍵盤物件 硬體鍵盤物件,建立成功時返回;建立失敗時返回 nil
  • 錯誤資訊 文字型,建立失敗時返回錯誤資訊。

建立失敗時,兩個回傳值合起來為 nil, error

說明

建立一個獨立的硬體鍵盤物件;每個物件的按鍵狀態和連接生命週期彼此獨立。 連接等待期間會隱式讓出,在函式返回之前,其他執行緒可能獲得執行機會。

  • Transport 只影響 iOS 或目標 App 識別該鍵盤的方式。設為 "Bluetooth""BluetoothLowEnergy" 不會建立藍牙連接、廣播或配對,也不會讓鍵盤出現在其它裝置的藍牙清單中
  • 同一時間最多按住 6 個普通按鍵,修飾鍵不計入;超過限制時目標系統無法識別具體按鍵,請先釋放部分按鍵
  • 目標 App 可能無法區分多個硬體鍵盤物件的輸入來源
  • 本函式只建立獨立物件,不會改變現有 key.* 介面;如需讓現有介面使用硬體鍵盤,請呼叫 key.connect_global_keyboard
  • 發送失敗時不會自動改用其它輸入方式重試

範例

local keyboard, err = key.connect_keyboard({
Product = "XXTouch Keyboard",
})
assert(keyboard, err)

assert(keyboard:press("a"))
assert(keyboard:down("LEFTSHIFT"))
assert(keyboard:press("b"))
assert(keyboard:up("LEFTSHIFT"))
assert(keyboard:send_text("Hello"))

keyboard:disconnect()