【发布时间】:2017-10-02 16:17:23
【问题描述】:
我在 android 内核中开发了一个新的触摸屏驱动程序。 我的目标是模拟触摸屏事件。 因此,在我的新驱动程序的探测中,我分配了所需的键:
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 中看到几乎所有具有正确值的事件(只有我在 shell 中看不到的 BTN_TOUCH 事件)。 此外,我在手机屏幕的一角看到一个圆圈。但是这个圈子什么也没做。它会在几秒钟后消失。
我会感谢您的帮助。我觉得我在这里遗漏了一些东西......
【问题讨论】:
标签: android c linux-kernel android-kernel