Android-4.0支持触摸屏参考文档转载

本文详细介绍了在Android 4.0上开发触摸设备驱动时需要关注的几个关键点,包括手指抬起、物理接触上报方式的更新以及驱动程序的调整。同时,阐述了Android 4.0与2.3版本在触摸屏驱动调试过程中的主要差异,特别强调了在4.0版本中需要添加的特定配置,以确保触摸屏功能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----------------------------------------------------------------------------------------------------------------------------------

原文链接:http://blog.youkuaiyun.com/joard_yang/article/details/7387316

在android 4.0上开发触摸设备驱动需要注意的几点

android 4.0已经渐渐流行,很多方案都已经基于其上,android 4.0的linux内核版本已经更新为linux 3.0,这个变化导致和内核直接接触的驱动需要或多或少的变化,以下描述的是触摸设备驱动的一些小变化:

1.当一个(这时候的情境应该是多点触摸的情况)手指或是触摸工具抬起(UP)时,他应该立即消失在多点出没的同步报告中,当所有的工具或手指抬起,驱动应该立即发送一个“空”同步消息,使用SYN_MT_REPORT其次是SYN_REPORT。

之前的版本是向上报告一个presssure为0的消息,现在新的多点触摸协议已经不再兼容旧的协议了。

2.物理接触或是信号强度将使用ABS_MT_PRESSURE上报。
之前的版本是用ABS_MT_TOUCH_MAJOR上报这个消息,同样,旧的方式也已经不被兼容了。

3.触摸接触面积使用ABS_MT_TOUCH_MAJOR向上报告
旧的版本使用ABS_MT_TOOL_MAJOR向上报告,旧的方式也已经不被兼容了。

触摸设备驱动程序不再需要特定的Android定制。依靠标准的Linux输入协议,Android可以更广泛支持触摸外设,如外部HID多点触摸触摸屏,使用未修改的驱动程序。

example:
static irqreturn_t xxx_ts_irq_handler(int irq, void *dev_id)
{
    struct xxx_ts_data *ts = dev_id;
    struct xxx_ts_finger *finger = ts->finger;
    struct input_dev *input_dev = ts->input_dev;
    int count = 0;
    int i, ret;

    ret = xxx_ts_read_data(ts);
    if (ret < 0)
        goto end;

    /* multi touch protocol */
    for (i = 0; i < MAX_FINGERS; i++) {
        if (!finger[i].is_valid)
            continue;

        input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, finger[i].t);
        input_report_abs(input_dev, ABS_MT_POSITION_X, finger[i].x);
        input_report_abs(input_dev, ABS_MT_POSITION_Y, finger[i].y);
        input_mt_sync(input_dev);
        count++;
    }

    /* SYN_MT_REPORT only if no contact */
    if (!count)
        input_mt_sync(input_dev);

    /* SYN_REPORT */
    input_sync(input_dev);

end:
    return IRQ_HANDLED;

}

--------------------------------------------------------------------------------------------------------------------------------

android4.0与2.3版本的触摸屏驱动调试注意

个人找到的链接地址:http://blog.youkuaiyun.com/joard_yang/article/details/7388109

转自搜索到的一篇blog,他没有注明转载出处,我也没法写出处了,对原创作者隔空说一声抱歉。

android4.0与2.3版本的TP代码区别

在android2.3上调试TP时,只需要把linux驱动调通,android就可以正常使用了,而到android4.0上又有些不同了,针对linux驱动,需添加如下内容:
    1、在手指按下时需调用如下函数上报Key Down:
       input_report_key(struct input_dev *input, BTN_TOUCH, 1);
    2、在手指释放时需调用如下函数上报Key Up:
       input_report_key(struct input_dev *input, BTN_TOUCH, 0);
    这样通过的话,可以在android4.0上看到有鼠标指针(圆圈)可以移动,把触摸屏做成了笔记本电脑上的鼠标触摸屏了,后来再查了下,原来需要添加一个idc文件,具体识别优先级参考:http://source.android.com/tech/input/input-device-configuration-files.html这篇文档,会按下面的顺序识别配置文件:
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/DEVICE_NAME.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/DEVICE_NAME.idc
   为了方便,我直接创建一个“设备名.idc”的文件,直接放到/system/usr/idc/目录下,相应的内容参考如下:
   # Basic Parameters
   touch.deviceType = touchScreen
   touch.orientationAware = 1

   # Size
   touch.size.calibration = diameter
   touch.size.scale = 10
   touch.size.bias = 0
   touch.size.isSummed = 0

   # Pressure
   # Driver reports signal strength as pressure.
   #
   # A normal thumb touch typically registers about 200 signal strength
   # units although we don't expect these values to be accurate.
   touch.pressure.calibration = amplitude
   touch.pressure.scale = 0.005

   # Orientation
   touch.orientation.calibration = none
   这样配置好后,在android4.0上的TP就可以正常使用了,而不会成为滑鼠触屏了。
-----------------------------------------------------------------------------------------------------------

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值