Como utilizar diferentes tipos de teclado em Java ME
Dados do artigo
Artigo
Contents |
Introdução
A maioria dos aparelhos celulares têm o teclado do tipo ITU-T. O teclado ITU-T é o tradicional em dispositivos móveis com 12 teclas básicas, que são teclas de números de 0-9, a tecla “*” e a tecla “#”. ITU-T é um padrão da união internacional de telecomunicações. Enquanto que, alguns dos mais recentes dispositivos S60 terceira edição FP2 e quinta edição têm diferentes tipos de teclados, por exemplo, teclado mini-QWERTY ou meio-QWERTY (também conhecido como QWERTY compacto). Este artigo explica como usar efetivamente estes diferentes teclados com diferentes layouts de teclado.
Tipos de teclado
Atualmente (Junho de 2009) existem vários tipos de teclados ou layouts de teclados em uso nos dispositivos S60:
- Teclado ITU-T (por exemplo, Nokia 6220 classic)
- Teclado half-QWERTY (por exemplo, Nokia E55)
- Teclado mini-QWERTY (por exemplo, Nokia N97)
Abaixo estão algumas imagens mostrando esses tipos de layouts nos dispositivos Nokia.
Figura 1: Teclado ITU-T no Nokia 6220 classic, teclado half-QWERTY no Nokia E55 e teclado mini-QWERTY no Nokia N97.
Edição com o teclado half-QWERTY
Deve ser observado que não é possível capturar códigos de teclas para todos os caracteres no teclado half-QWERTY. Por exemplo, se a tecla com "G", "H" e "5" é pressionada, você pegará o código 103 (scan code 71), que representa o caractere "g". Não é possível capturar o código de teclas para "h" ou "H" pelo uso do método Canvas.keyPressed().
Sobre os scancodes
Uma propriedade do sistema "com.nokia.key.scancode" retorna o scancode da últimas teclas pressionadas. O scancode pode ser estar para o código de uma certa tecla (não uma tecla para um certo caractere). Por exemplo, no teclado QWERTY pressionando-se "Q" temos 113 como código de tecla e 81 como scancode. Assim em países que falam francês o layout de teclado AZERTY é comumente usado. Nestes teclados pressionando-se "Q" daria algum keycode, mas o scancode seria diferente. Exemplo prático do uso de scancodes poderia ser jogos, em que teclas em localizações pré-definidas são necessárias. Desta forma os teclados QWERTY compactos estão mais próximos aos teclados ITU-T do que aos teclados com caracteres completos. Se desenvolvedores Java querem implementar, por exemplo, inserir texto em eventos de teclado de baixo nível, então a aplicação necessita fazer a própria inserção de texto de um modo mudo similar como é feito nos dispositivos de teclado ITU-T.
Propriedades extras do sistema
Existem várias propriedades adicionais do sistema que são necessárias para o efetivo uso de diferentes teclados. Note que estas propriedades do sistema estão atualmente disponíveis nos dispositivos S60, não em dispositivos Series 40.
| Propriedade do sistema | Próposito | Valores |
|---|---|---|
| com.nokia.keyboard.type | Tipo utilizado atualmente | Um dos seguintes valores: None, PhoneKeypad, HalfKeyboard, FullKeyboard, LimitedKeyboard4x10, LimitedKeyboard3x11, Custom, Unknown |
| com.nokia.key.modifier | Teclas modificadoras de evento(SHIFT/FN/CTRL, etc.) usado nas últimas teclas pressionadas | Um número (um ou mais dígitos), Veja separação na Tabela 2. |
| com.nokia.key.scancode | Indica o scancode das últimas teclas pressionadas | Um número (um ou mais dígitos) |
Tabela 1: Classes MIDlet minicontroladores
| Tecla modificadora | Exemplos de identificadores nativos | Valor | Valor decimal |
|---|---|---|---|
| (identificadores para S60 apenas) | |||
| Shift esquerdo | EModifierShift | 0x00000400 | 1280 |
| Shift direito | EModifierShift | 0x00000400 | 1536 |
| ctrl |



(no comments yet)