3

我正在尝试使用 IR 遥控器将某些关键代码传递给 Android。到目前为止,我可以通过数字键(0-9)和方向键(上、下、左、右、回车)。现在我正在尝试扩展键以包含其他字符,例如 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 的值。

4

1 回答 1

1

结构的密钥位字段必须设置为包含所有正在传递的密钥代码。

例如,

set_bit(KEY_A, input_dev->keybit);
于 2013-09-20T22:24:28.867 回答