5 votos

¿Cómo manejar las teclas multi-clave en Android con un teclado bluetooth?

Tengo un teclado Microsoft Mobile Wedge. Lo he conectado a mi Nexus 9 y tras configurar el idioma en los ajustes funciona casi perfectamente. ¡¡¡Casi!!! Hay 4 teclas en él que no funcionan, porque son teclas multiteclado. Son la tecla "lupa", la tecla "3 puntos en un anillo", la tecla "rectángulo negro que se cruza con un borde rectangular" y la tecla "engranajes/ajustes".

Hasta ahora he descubierto con

getevent -lt /dev/input/event4

que los códigos clave de Linux que envían son

KEY_LEFTSHIFT
KEY_LEFTMETA
KEY_F21

KEY_LEFTALT
KEY_LEFTMETA
KEY_F21

KEY_LEFTCTRL
KEY_LEFTMETA
KEY_F21

KEY_LEFTMETA
KEY_F21

He creado los 2 archivos de su Generic.kl y Generic.kcm contrapartes

/system/usr/keylayout/Vendor_045e_Product_0790.kl
/system/usr/keychars/Vendor_045e_Product_0790.kcm

y se aseguró con

dumpsys input

que se utilizan.

Intenté habilitar F21 en el diseño primero, pero eso no funcionó porque no hay ningún código de tecla de Android para F21. Así que la vinculé a INSERT en su lugar, porque es una tecla no utilizada. Luego fui al mapa de caracteres y traté de hacer una tecla INSERT (que en realidad es F21) y aplicar los modificadores correctos a la misma.

key INSERT {
    base:           'a'
    lmeta:          'A'
}

Lo anterior es para la llave que sólo tenía 2 códigos clave. Desafortunadamente esto no funcionó. No pasó nada. Así que ahora estoy aquí para recoger su cerebro.

¿Alguien sabe cómo hacer llaves multi-clave?

Muchas gracias de antemano.

0 votos

¿Te refieres a las llaves dentro de Android que quieres enlazar?

1voto

elflng Puntos 1

Haz lo siguiente:

  1. Ejecutar getevent sin el -lt bandera.

  2. Pulse varias veces la tecla que desea probar. Obtendrás tres líneas algo así:

    /dev/input/eventn: 0004 0004 longnum
    /dev/input/eventn: 0001 4\_DIGIT\_NUMBER\_OF\_INTEREST MASK
    /dev/input/eventn: 0000 0000 longemptynum

    El 4_DIGIT_NUMBER_OF_INTEREST es el código de escaneo.

  3. En su .kl archivo (en /system/usr/keylayout/[yourlayout].kl ), añade una línea:

    key [4_DIGIT_NUMBER_OF_INTEREST] [UNUSED_BINDING] 

    Ya has llegado hasta ahí.

    Así, en su .kcm se ponen las siguientes líneas y ya está todo listo.

    key \[UNUSED\_BINDING\] {
    lmeta:            what\_you\_want\_for\_just\_lmeta (but it should be first)
    lshift+lmeta:     what\_you\_want\_for\_lshift+lmeta
    lalt+lmeta:       what\_you\_want\_for\_lalt+lmeta
    lctrl+lmeta:      what\_you\_want\_for\_lctrl+lmeta
    }

Referencia: Archivos de mapas de caracteres clave (en Declaraciones de clave → Propiedades)

0voto

williamsdb Puntos 147

No estoy seguro de si tu manera funciona o no, pero intenta ver si esto funciona. He enlazado todo lo necesario, echa un vistazo y prueba a ver si funciona.

Dispositivos de teclado Android (Desplácese hasta el final de la página para ver todos los códigos clave)

Keytest Apk (Se utiliza para mostrar los códigos de las teclas cuando se pulsan)

Cómo asignar las teclas de Android a tu teclado USB/Bluetooth

Asigna las teclas de Android a cualquier teclado

Clave de Android Mapas (Blog del usuario)

Atajos de teclado y navegación, estos pueden ayudar con su problema o no (también extras para los usuarios que están leyendo esto)

  • ESC = volver atrás
  • CTRL + ESC = menú
  • CTRL + ALT + DEL = reinicio (sin preguntas)
  • ALT + ESPACIO = página de búsqueda (diga "OK Google" a la búsqueda por voz)
  • ALT + TAB (ALT + SHIFT + TAB) = cambiar de tarea

Además, si tienes teclas de función de volumen designadas, probablemente también funcionen. También hay algunos atajos de aplicaciones dedicados como la calculadora, Gmail y algunos otros:

Atajos del teclado de Android: Aplicaciones

  • CMD (tecla de Windows) + A = calculadora
  • CMD + C = contactos
  • CMD + E = correo electrónico
  • CMD + G = Gmail
  • CMD + L = Calendario
  • CMD + P = Reproducir música
  • CMD + Y = YouTube

Otras claves que son útiles son:

Atajos del teclado de Android: Desplazamiento

  • Barra espaciadora: Avanza la página en cualquier vista de página/documento de la web
  • Mayúsculas + Barra espaciadora: Subir de página en cualquier vista de página web/documento

Atajos del teclado de Android: Escribir en

  • Alt + Barra espaciadora: Insertar un carácter especial

  • Mayúsculas + Supr: Eliminar el carácter a la derecha del cursor

  • Alt + Supr: Borrar una línea entera

  • Shift + Shift (púlsalo dos veces): Activar el bloqueo de mayúsculas; pulsar Shift una vez más para salir

  • Alt + Trackball (Ratón) -Izquierda: Mover el cursor al principio de la línea

  • Alt + Trackball-Derecha: Mover el cursor al final de la línea

  • Alt + Trackball-Up: Mover el cursor a la parte superior de la página

  • Alt + Trackball-Abajo: Mover el cursor al final de la página

  • Shift + Trackball-Izquierda/Derecha: Resaltar texto para cortar o copiar

  • Menú + X: Cortar texto (cortará todo el texto en pantalla a menos que haya caracteres específicos resaltados)

  • Menú + C: Copiar texto al portapapeles (copiará todo el texto en pantalla a menos que se resalten caracteres específicos)

  • Menú + V: Pegar texto desde el portapapeles

  • Menú + A: Seleccionar todo el texto del campo actual

Atajos del teclado de Android: Navegando por

  • Menú + I: Acercarse

  • Menú + O: Alejar el zoom

  • Menú + J: Retroceder una página

  • Menú + K: Avanzar una página

  • Menú + R: Actualizar la página actual

  • Menú + F: Buscar en la página

  • Menú + B: Abrir marcadores

  • Menú + S: Abrir el menú para compartir en redes sociales

  • Menú + H: Ver el historial de navegación

  • Menú + S: Abrir la configuración del navegador

Atajos del teclado de Android: Gmail

  • F: Reenviar el mensaje actual (sólo funciona dentro del mensaje)

  • R: Responder al mensaje actual (sólo funciona dentro del mensaje)

  • A: Responder a todos los mensajes actuales (sólo funciona dentro del mensaje)

  • Y: Archivar el mensaje (funciona desde el mensaje o desde la lista principal de la bandeja de entrada)

  • Menú + U: Actualizar la bandeja de entrada

  • Menú + C: redactar un nuevo correo electrónico

  • Entra: Abrir un correo electrónico (desde la lista principal de la bandeja de entrada)

  • Alt + Trackball-Up: Saltar a la parte superior de la bandeja de entrada

  • Alt + Trackball-Abajo: Saltar al fondo de la bandeja de entrada

0 votos

Gracias por escribir esto, pero no es una respuesta a la pregunta. El problema no es el mapeo de las llaves, el problema es el manejo de las llaves que envían múltiples keycodes al sistema. Los cuales no son reconocidos correctamente, incluso por el programa keytest. El único programa que muestra todas las llaves es getevent.

0 votos

@Dominik Bueno, buena suerte tratando de conseguir que funcione, y cuando estas teclas se presionan, que no funcionan de cualquier manera cuando se mantiene la mayúscula y no mantener la mayúscula? ¿Estoy en lo cierto al suponer eso?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X