【问题标题】:Get keycode of input.h linux from KeyCode KeyEvent Android从 KeyCode KeyEvent Android 获取 input.h linux 的 keycode
【发布时间】:2021-06-14 16:18:49
【问题描述】:

我需要在 KeyEvent Android 之后获取它们对应于结构 linux/input.h 的 KeyCode。

我正在 JNI Android 中模拟键盘。 这是我的代码的一部分:

void keyBoardPress(int character) {
memset(&ev, 0, sizeof(struct input_event));
ev.type = EV_KEY;
ev.code = character;
ev.value = EV_PRESSED;
write(fd, &ev, sizeof(struct input_event));
dev_uinput_sync(fd);

ev.type = EV_KEY;
ev.code = character;
ev.value = EV_RELEASED;
write(fd, &ev, sizeof(struct input_event));
dev_uinput_sync(fd);

}

character 的值必须是来自 struct linux/input.h 的值 例如,如果我按“Q”,在 Java 中我会得到这个代码值:

public static final int KEYCODE_Q               = 45;

linux/input.h中'Q'的值是:

#define KEY_Q 16

是否可以从 Java Code 中获取字符的 linux/input.h 的值,或者将 Java KeyEvent Code 转换为 linux/input.h 代码?

感谢您的帮助!

【问题讨论】:

    标签: java android java-native-interface keyevent


    【解决方案1】:

    似乎已经使用键布局文件完成了从 linux 代码到 android 的映射。你可以阅读更多here。 我假设 key 16 Q 正在转换为 key + Q(KEYCODE_Q) 稍后此事件将在更高级别上处理。

    【讨论】:

      猜你喜欢
      • 2014-09-25
      • 2011-05-19
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多