【发布时间】: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