Невозможно передать определенные коды ИК-пульта дистанционного управления на Android


Я пытаюсь использовать ИК-пульт для передачи определенных ключевых кодов на Android. До сих пор я могу передавать цифровые клавиши (0-9) и клавиши D-pad (up, down, left, right, enter). Теперь я пытаюсь расширить ключи, чтобы включить другие символы, такие как a-z.

Код, который я изменяю, является драйвером IR в ядре Linux части Android. Это похоже наЭтот драйвер. Однако, когда я передаю значение, такое как KEY_A (сопоставляет "a" с 30: определенный в Linux include/linux/вход.h ), Android не видит этого.

Раздел кода, передающий команду вверх, выглядит следующим образом:

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

Когда я печатаю cir - > last_key, я вижу значение 30, когда нажимаю кнопку "a". Тем не менее, я не уверен, как проследить код отсюда до Android, чтобы увидеть, где нажимается кнопка.

В Android у меня есть файл под названием /system/usr/keylayout/qwerty.kl, который сопоставляет значения, например, 30 сопоставляет "а". Проблема в том, что Android никогда не получает значение 30, когда я нажимаю "а".

1 3

1 ответ:

Поле keybitэтой структуры должно включать все передаваемые коды ключей.

Например,

set_bit(KEY_A, input_dev->keybit);