/ / Impossible de transmettre certains codes de clé à distance IR à Android - Android, Linux, pilotes

Impossible de transmettre certains codes de clé infrarouge à Android - Pilotes Android, Linux

J'essaie d'utiliser une télécommande infrarouge pour passer certainscodes clés pour Android. Jusqu'à présent, je suis capable de passer des touches numériques (0-9) et des touches du pavé numérique (haut, bas, gauche, droite, entrer). Maintenant, j'essaie d'étendre les touches pour inclure d'autres caractères comme a-z.

Le code que je modifie est un pilote IR dans la partie noyau Linux d'Android. Il est similaire à ce chauffeur. Cependant, lorsque je passe une valeur comme KEY_A (mappe "a" à 30: défini dans Linux / include / linux /input.h), Android ne le voit pas.

La section de code qui transmet la commande est la suivante:

        input_report_key(cir->input, cir->last_key, 1);
input_report_key(cir->input, cir->last_key, 0);
input_sync(cir->input);

Lorsque j'imprime cir-> last_key, je peux voir la valeur 30 lorsque j'appuie sur le bouton "a". Cependant, je ne sais pas comment tracer le code d'ici vers Android pour voir où la pression sur le bouton est supprimée.

Dans Android, j'ai un fichier appelé /system/usr/keylayout/qwerty.kl qui mappe les valeurs, par exemple 30 correspond à "a". Le problème est qu'Android n'obtient jamais la valeur 30 lorsque j'appuie sur "a".

Réponses:

1 pour la réponse № 1

Le champ du clavier de ce la structure doit être définie pour inclure tous les codes clés transmis.

Par exemple,

set_bit(KEY_A, input_dev->keybit);