【问题标题】:Unable to pass certain IR remote key codes to Android无法将某些 IR 遥控钥匙代码传递给 Android
【发布时间】:2013-09-17 03:19:03
【问题描述】:

我正在尝试使用 IR 遥控器将某些键码传递给 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 的值。

【问题讨论】:

    标签: android linux drivers


    【解决方案1】:

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

    例如,

    set_bit(KEY_A, input_dev->keybit);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2013-04-08
      • 2016-01-17
      • 2015-01-03
      • 2015-12-25
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多