android - 无法将某些红外遥控键代码传递给 Android

标签 android linux drivers

我正在尝试使用 IR Remote 将某些键码传递给 Android。到目前为止,我可以传递数字键 (0-9) 和方向键(上、下、左、右、回车)。现在我正在尝试扩展键以包含其他字符,如 a-z。

我正在修改的代码是 Android 的 Linux 内核部分中的 IR 驱动程序。它类似于 this司机。但是,当我传递像 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 的值。

最佳答案

this的keybit字段结构必须设置为包括所有传递的关键代码。

例如,

set_bit(KEY_A, input_dev->keybit);

关于android - 无法将某些红外遥控键代码传递给 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18840772/

相关文章:

Redhat 6 上的 CPU 利用率

linux - Arch Linux 上的 Intellij Idea 14 打开灰屏

从 Visual Studio 创建软件分发包

android - 使用 Context.getText 和 Context.getResources.getText 有什么区别吗?

java - 带有一些 ImageView 的动画包

android - RecyclerView notifyDataSetChanged 一直向上滚动,没有按我想要的那样工作

java - Android 编译 : No rule to make target

python - 如何防止 Python 脚本强制退出?

c - 如何在我的计算机中用 C 查找已安装驱动程序的名称?

linux - Xinerama 是否导致我的代码出现问题?