我现在在做触摸屏驱动,点击安卓桌面上的按钮时,在驱动中能获得触摸屏上的坐标, 但按钮没有反应。
刚接触安卓,请问下面代码有没有问题?还有如何调试这种问题?
谢谢!
#define MAX_SUPPORT_POINTS 5
for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
input_mt_slot(data->input_dev, i);
if (data->fingers[i].status) { //按下
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, data->fingers[i].x);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, data->fingers[i].y);
input_report_abs(data->input_dev, ABS_MT_PRESSURE, data->fingers[i].pressure);
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, 1);
//input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, i);
}
else
{
uppoint++;
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false);
}
}
if (uppoint == MAX_SUPPORT_POINTS) //没有触控
input_report_key(data->input_dev, BTN_TOUCH, 0);
else
input_report_key(data->input_dev, BTN_TOUCH, 1);
input_sync(data->input_dev);
------解决方案--------------------
问的不太是地方,这里搞应用的多一些。这个具体是Linux内核的input子系统的相关知识。
你能够得到坐标说明Linux中内核驱动没有问题,但是要以input子系统的方式上报给Android系统。不然Android不知道有上报。