我需要得到他们的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
),稍后此事件将在更高级别上处理。