Obrigada por tentar me ajudar! Acho que não fui muito clara ao explicar o meu problema. Vou tentar fazer melhor ^^
O teclado é qwerty sim. Eu tenho um controle desses como tu falou pros demais teclados.
O teclado do Moto Q (que é o que eu estou usando pra testar, mas o funcionamento é semelhante aos demais) funciona da seguinte maneira:
- Cada botão tem dois caracteres escritos, um em cima do outro. Por exemplo, existe a tecla 1/W (1 em cima, W embaixo)
- Quando você simplesmente aperta essa tecla, o programa recebe, na função keyPressed, o argumento Tecla como 119 (decimal), o código ascii do caracter w.
- Se o usuário desejar apertar 1, ele deve pressionar ALT, e depois a tecla 1/W. O programa então recebe o argumento pra função como 49, o código ascii do caracter 1.
- Se o ALT é pressionado duas vezes consecutivas, então todos os demais cliques serão nos caracteres de cima (é como um caps lock, só que não pra maísculas/minúsculas, mas pra seleção de caracteres). Apertando ALT novamente, volta ao normal.
Por exemplo: a seqüência de cliques ALT 1/w 1/w ALT ALT 1/w 1/w 1/w ALT 1/w resulta nos sinais 49 119 49 49 49 119 (1 w 1 1 1 w)
A tecla ALT não gera uma chamada de keyPressed! Sendo assim, eu não tenho como saber se o cara tá com o ALT ou não, isso é gerenciado pelo celular.
O meu problema é que quando o cara entra no meu programa, é como se ele tivesse apertado ALT duas vezes. Eu quero uma forma de isso não acontecer, pois são válidos para mim apenas números e letras.
Do jeito que tá, o cara entra e clica, por exemplo, na tecla (/T e o programa recebe ‘(’, aí não responde, porque é inválido. Como nada acontece, o cara fica achando que o programa não tá funcionando, que travou, etc.