从Android内核模拟触摸事件

3
我在安卓内核中开发了一个新的触摸屏驱动程序。 我的目标是模拟触摸屏事件。 因此,在我的新驱动程序的探测中,我分配所需的键:
input_set_abs_params(in_dev, ABS_MT_TRACKING_ID, 10000, 0, 0);
input_set_abs_params(in_dev, ABS_MT_POSITION_Y, 0, 1000, 0, 0);
input_set_abs_params(in_dev, ABS_MT_POSITION_X, 0,1000, 0, 0);
input_set_abs_params(in_dev, ABS_MT_TOUCH_MAJOR,0,1000,0, 0);
input_set_abs_params(in_dev, ABS_MT_TOUCH_MINOR,0,1000,0, 0);

在代码中,我尝试模拟触摸屏事件:

input_event(in_dev, EV_ABS, ABS_MT_TRACKING_ID, ++counter);
input_event(in_dev, EV_KEY, BTN_TOUCH, 1);
input_event(in_dev, EV_KEY, BTN_TOOL_FINGER, 1);

input_event(in_dev, EV_ABS, ABS_MT_POSITION_X, 0x00000336);
input_event(in_dev, EV_ABS, ABS_MT_POSITION_Y, 0x0000059a);
input_event(in_dev, EV_ABS, ABS_MT_TOUCH_MAJOR, 7);
input_event(in_dev, EV_ABS, ABS_MT_TOUCH_MINOR, 6);

input_event(in_dev, EV_ABS, ABS_MT_TRACKING_ID, 0xffffffff); 
input_event(in_dev, EV_KEY, BTN_TOUCH, 0);
input_event(in_dev, EV_KEY, BTN_TOOL_FINGER, 0);

现在我可以在我的shell中看到几乎所有事件的正确值(只有BTN_TOUCH事件在shell中无法看到)。 此外,我在手机屏幕的角落看到了一个圆形。但是这个圆圈没有任何作用。几秒钟后它就消失了。

我将感激你的帮助。我觉得我在这里遗漏了一些东西...

1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接