现象:touch进行菜单操作,玩一些重力感应游戏都正常,可就是装了
愤怒的小鸟后,点击“play”没有反应!
解决过程:
将程序与之前8寸的touch驱动对比,在注册input子系统部分有少一个
EV_SYN,所以加上:
input_device->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) | BIT_MASK(EV_SYN); //jeff add EV_SYN.
测试,还是不行!
继续,查看上报数据:
input_event(ts->input, EV_ABS, ABS_MT_TRACKING_ID, tracking_id);
input_event(ts->input, EV_ABS, ABS_MT_POSITION_X, xy_data.x1);
input_event(ts->input, EV_ABS, ABS_MT_POSITION_Y, xy_data.y1);
input_event(ts->input, EV_ABS, ABS_MT_TOUCH_MAJOR, 1);
input_mt_sync(ts->input);
这里tracking_id的值在单点的时候为1,两点时为2,依次类推。
而8寸touch支持2点,ABS_MT_TRACKING_ID上报的是0,1. 所以很怀疑
是不是上报的TRACKING_ID应该从0开始,于是将每个上报前的tracking_id
做-1处理,结果测试ok,愤怒的小鸟可以玩了!
中间还使用多款多点触摸测试软件进行测试。