3
我在android內核中開發了一個新的觸摸屏驅動程序。 而我的目標是模擬觸摸屏事件。 因此,在我的新驅動程序的探頭,我分配所需的鍵:從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事件)。 此外,我在手機屏幕的角落看到一個圓圈。但是這個圈子什麼都不做。它幾秒鐘後就消失了。
我會給你提供幫助。我覺得我錯過了這裏的一些東西...