Pular para o conteúdo principal

! Criar um objeto de teclado de hardware independente (key.connect_keyboard)

Esta função está disponível somente a partir da versão 20260805.

Declaração

objeto_teclado, mensagem_de_erro = key.connect_keyboard([atributos_de_configuracao])

Parâmetros

  • atributos_de_configuracao Tabela opcional usada para definir os atributos comuns do dispositivo abaixo; os valores no bloco de código são os padrões quando omitidos:
{
VendorID = 0x5858,
ProductID = 0x0001,
Product = "XXTouch Keyboard",
Manufacturer = "XXTouch",
Transport = "USB",
}

Também é possível definir VersionNumber, SerialNumber e LocationID. Não há garantia de que os demais atributos terão efeito.

Valores retornados

  • objeto_teclado Objeto de teclado de hardware; retornado quando a criação é bem-sucedida, e nil quando falha.
  • mensagem_de_erro Texto; retorna a mensagem de erro quando a criação falha.

Quando a criação falha, os dois valores retornados são nil, error.

Descrição

Cria um objeto de teclado de hardware independente; o estado das teclas e o ciclo de vida da conexão de cada objeto são independentes. Durante a espera pela conexão, a execução é cedida implicitamente e outras threads podem ter a oportunidade de executar antes do retorno da função.

  • Transport só afeta a forma como o iOS ou o aplicativo de destino identifica o teclado. Defini-lo como "Bluetooth" ou "BluetoothLowEnergy" não estabelece conexão, transmissão ou pareamento Bluetooth, nem faz o teclado aparecer na lista Bluetooth de outros dispositivos.
  • É possível manter pressionadas no máximo 6 teclas comuns ao mesmo tempo; as teclas modificadoras não entram na contagem. Acima desse limite, o sistema de destino não consegue identificar as teclas específicas; libere algumas teclas primeiro.
  • O aplicativo de destino pode não conseguir distinguir a origem da entrada de vários objetos de teclado de hardware.
  • Esta função apenas cria um objeto independente e não altera as interfaces key.* existentes; para que as interfaces existentes usem um teclado de hardware, chame key.connect_global_keyboard.
  • Quando o envio falha, não tenta automaticamente outro método de entrada.

Exemplo

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()