IRリモコンを使用して特定のキーコードをAndroidに渡そうとしています。これまでのところ、数字キー (0 ~ 9) と D-pad キー (上、下、左、右、Enter) を渡すことができます。今、キーを拡張して az のような他の文字を含めようとしています。
私が変更しているコードは、Android の Linux カーネル部分の IR ドライバーです。このドライバーに似ています。ただし、KEY_A ("a" を 30 にマップ: Linux の include/linux/ input.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 を出力すると、「a」ボタンを押すと値 30 が表示されます。ただし、ここから Android までコードをトレースして、ボタンが押された場所を確認する方法がわかりません。
Android には、値をマップする /system/usr/keylayout/qwerty.kl というファイルがあります。たとえば、30 は "a" にマップされます。問題は、「a」を押したときに Android が 30 の値を取得しないことです。