Невозможно передать определенные коды ИК-пульта дистанционного управления на 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 ответ:
Поле keybitэтой структуры должно включать все передаваемые коды ключей.
Например,
set_bit(KEY_A, input_dev->keybit);