2017-05-04 80 views
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事件)。 此外,我在手機屏幕的角落看到一個圓圈。但是這個圈子什麼都不做。它幾秒鐘後就消失了。

我會給你提供幫助。我覺得我錯過了這裏的一些東西...

回答