从keycode KeyEvent Android获取input.h linux的keycode



我需要得到他们的KeyCode对应的结构linux/input.h之后的KeyEvent Android.

我正在模拟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必须是linux/input.h结构体中的值例如,如果我按'Q',在Java中我得到这个代码值:

public static final int KEYCODE_Q               = 45;

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

#define KEY_Q 16

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

感谢您的帮助

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

最新更新