我将在这里回答我自己的问题。
问题是:如何防止 Droid VNC Server 缓冲关键事件并且在出现指针(鼠标/手势/点击等)事件之前不将它们发送到 Android 的输入系统?
我正在使用来自Android x86上 GitHub上的 Droid VNC Server 的 Droid VNC Server 的自定义构建。
我发现的问题是我会在键盘上的某个可编辑文本字段中键入一系列字符,但直到我触摸屏幕上的某个位置(注意不要让文本字段失去焦点)它们才会出现,从而导致鼠标事件。
我将在这里回答我自己的问题。
问题是:如何防止 Droid VNC Server 缓冲关键事件并且在出现指针(鼠标/手势/点击等)事件之前不将它们发送到 Android 的输入系统?
我正在使用来自Android x86上 GitHub上的 Droid VNC Server 的 Droid VNC Server 的自定义构建。
我发现的问题是我会在键盘上的某个可编辑文本字段中键入一系列字符,但直到我触摸屏幕上的某个位置(注意不要让文本字段失去焦点)它们才会出现,从而导致鼠标事件。
在 /jni/vnc/inputMethods/input.c 中有一个方法 keyEvent ,我在其中添加了一行代码来“实时”刷新关键事件:
void keyEvent(rfbBool down, rfbKeySym key, rfbClientPtr cl)
{
....
if (key && down)
{
....
}
// Added this to "flush" out key events as they come in achieving real-time
// character input on Android
suinput_write(inputfd, EV_SYN, SYN_REPORT, 0);