如何防止机器人VNC服务器上的键盘缓冲

时间:2013-07-06 09:54:35

标签: android key vnc buffering

我将在这里回答我自己的问题。

问题是:如果有指针(鼠标/手势/点击等)事件,我如何阻止Droid VNC Server缓冲关键事件并且不将它们发送到Android的输入系统?

我在Android x86上使用来自Droid VNC Server on GitHub的自定义版本的Droid VNC服务器。

我发现的问题是我会在一些可编辑的文本字段中键入键盘上的一系列字符但是直到我触摸屏幕上的某个地方才会出现它们(注意不要让文本字段失去焦点)因此导致鼠标事件。

1 个答案:

答案 0 :(得分:3)

在/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);