一种在Android平台下实现触摸屏校准的方法

文档序号:6334322阅读:359来源:国知局
专利名称:一种在Android平台下实现触摸屏校准的方法
一种在Android平台下实现触摸屏校准的方法
技术领域
本发明涉及一种电子信息技术领域,特别是涉及一种触摸屏校准技术。背景技术
标准的Android平台不提供触摸屏校准的程序,而Android框架本身大部分的操 作是通过触摸屏操作完成的,使用Android平台的厂商使用的硬件各不相同,但当前绝大 部分使用的触摸屏校准方式是在Iinux内核中修改触摸屏驱动,固定好校准参数,驱动在 上报数据时首先经过校准参数修订后再上报。这种方式被绝大部分Android手机厂商采 用,因为硬件选型稳定而且工艺水平较高,采用在驱动层就确定好校准参数即可以实现校 准功能。但对于大部分的行业终端产品及其制造厂商,触摸屏硬件选型经常要改变,而且 由于制作工艺的缺陷,采用在驱动中固定校准参数不太合适。而且不同的用户使用的点击 习惯是不同的,故此需要一种方案能够根绝各台终端的当前状态或者不同用户的使用体验 可以动态的调整校准参数。

发明内容本发明要解决的技术问题,在于提供一种在Android平台下实现触摸屏校准的方 法,它能够根据各台终端的当前状态或不同用户的使用体验,动态的调整触摸屏的校准参数。本发明是这样实现的一种在Android平台下实现触摸屏校准的方法,所述Android框架包括内核层、本 地库、应用框架、应用层,它具体包括如下步骤步骤10、所述内核层内的触摸屏驱动提供sysfs接口文件;步骤20、所述本地库调用所述sysfs接口文件,先通过非使能驱动校准ck_en = disable,获得触摸屏原始点,把触摸屏原始点发往应用框架;步骤30、应用框架将触摸屏原始点上报给应用层的校准程序CAPP ;步骤40、校准程序CAPP通过标准算法获得校准参数,并将所获得的校准参数设置 到驱动的sysfs接口文件;步骤50、启动本地库的使能驱动校准功能ck_en = enable,并程序退出。一种在Android平台下实现触摸屏校准的方法,所述Android框架包括内核层、本 地库、应用框架、应用层,它具体包括如下步骤步骤10、所述应用层的校准程序CAPP设置所述应用框架上的系统属性,通知应用 框架无需校准,直接上报原始点给校准程序CAPP ;步骤20、所述校准程序CAPP根据标准算法获得校准参数,并记录标准参数到文件 /data/etc/pointercal ;步骤30、校准程序CAPP设置系统属性为完成状态,通知应用框架新的校准参数生
3效,应用框架从文件/data/etc/pointercal更新校准参数,并在以后的校准部分使用此参数。本发明具有如下优点本发明通过实现一个触摸屏的校准应用程序CAPP,让用户根据自己的习惯在触摸 屏上多次选点,程序根绝选点情况可以基本确认用户的选点习惯,同时根据与屏幕的对应 计算出校准参数。根据这个校准参数,通过触摸屏驱动和框架层两种方式来达到对触摸屏 原始点的校准,它能够根据各台终端的当前状态或不同用户的使用体验动态的调整触摸屏 的校准参数。

下面参照附图结合实施例对本发明作进一步的说明。图1为本发明方法流程示意图。图2为本发明另一方法的流程示意图
具体实施方式参阅图1、图2对本发明实施例进行详细的说明。如图1所示,本发明一种在Android平台下实现触摸屏校准的方法,所述Android 框架包括内核层、本地库、应用框架、应用层,它具体包括如下步骤步骤11、所述内核层内的触摸屏驱动提供sysfs接口文件;步骤12、所述本地库调用所述sysfs接口文件,先通过非使能驱动校准ck_en = disable,获得触摸屏原始点,把触摸屏原始点发往应用框架;步骤13、应用框架将触摸屏原始点上报给应用层的校准程序CAPP ;步骤14、校准程序CAPP通过标准算法获得校准参数,并将所获得的校准参数设置 到驱动的sysfs接口文件;步骤15、启动本地库的使能驱动校准功能Ck_en = enable,并程序退出。由触摸屏驱动提供sysfs接口文件供校准程序CAPP调用,校准程序CAPP校准前 应当先启动非使能驱动校准ck_en = disable,这样才能保证校准程序CAPP获得都是原始 点,然后在屏幕上依次画上、下、左、右、中5个点,用户依次单击,此过程可以多次以便获得 用户的点击习惯,同时过滤无效点,程序获取用户的点击点,并取其平均值,根据算法计算 出标准参数xuxyy^bbbdiv。所述xl,x2分别代表在竖向和横向上的X轴伸缩系数, yl,y2分别代表在竖向和横向上的Y轴伸缩系数,zl, z2分别代表在竖向和横向上的修正 值,div 是阈值。所述的标准算法为=Xl= (XTXXl+YTXyi+Zl)/div,YL= (YTXx2+YTXy2+z2)/ div,所述&、\是显示屏的坐标,XT、Yt是触摸屏的坐标。将经过校准算法后获得的校准参 数设置到驱动的sysfs接口文件中,然后启用使能驱动校准Ck_en = enable的功能并退 出,这样就可以保证其他应用程序获得的是校准后的点击点。驱动提供SYSFS接口Static struct device_attribute ts_calibrate{_ATTR{brightness;0644 ;ts_show_cken ;ts_store_cken};_ATTR{brightness;0644 ;ts_show_ckxl ;ts_store_ckxl};
_ATTR{brightness ;0644 ;ts_show_ckx2 ;ts_store_ckx2};_ATTR{brightness ;0644 ;ts_show_ckyl ;ts_store_ckyl};_ATTR{brightness ;0644 ;ts_show_cky2 ;ts_store_cky2};_ATTR{brightness ;0644 ;ts_show_ckzl ;ts_store_ckzl};_ATTR{brightness ;0644 ;ts_show_ckz2 ;ts_store_ckz2};_ATTR{brightness ;0644 ;ts_show_ckdiv ;ts_store_ckdiv};_ATTR_NULL ;}应用层实现调用流程Sysfs_write (fd_ts_chen ;0) //disable calibrate. · · // 触摸屏校准部分//把校准参数写入驱动sysfs接口文件Sysfs_write{fd_ts_chen ;xl};Sysfs_write{fd_ts_chen ;yl};Sysfs_write{fd_ts_chen ;zl};Sysfs_write{fd_ts_chen ;x2};Sysfs_write{fd_ts_chen ;y2};Sysfs_write{fd_ts_chen ;z2};Sysfs_write{fd_ts_chen ;div};Sysfs_write{fd_ts_chen ;0} ;//enable calibrate如图2所示,另一种在Android平台下实现触摸屏校准的方法,所述Android框架 包括内核层、本地库、应用框架、应用层,它包括如下步骤步骤21、所述应用层的校准程序 CAPP设置所述应用框架上的系统属性,通知应用框架无需校准,直接上报原始点给校准程 序CAPP ;步骤22、所述校准程序CAPP根据标准算法获得校准参数,并记录标准参数到文件 /data/etc/pointercal ;步骤23、校准程序CAPP设置系统属性为完成状态,通知应用框架 新的校准参数生效,应用框架从文件/data/etc/pointercal更新校准参数,并在以后的校 准部分使用此参数。正常情况下,驱动都是上报原始点,当没有开启CAPP应用时,应用框架从上次的/ data/etc/pointercal文件中获得校准参数一次,以后所有的触摸屏点击数据都要经过应 用框架的校准参数校准后再上报给应用层,而当校准程序CAPP要执行时,校准程序CAPP 需要的是原始点,故此CAPP要设置系统属性PR0P_CALIBRATE = RUNNING,通知应用框架无 须校准,直接上报原始点。一般校准程序CAPP设置应用框架中的系统属性中的Key-Value 键值对,应用框架在上报原始点时首先访问这个Key-Value键值对,以确定是否有要根据/ data/etc/pointercal文件的内容对点进行校准后才上报。设置系统属性后,在屏幕上依 次画上、下、左、右、中5个点,用户依次单击,此过程可以多次以便获得用户的点击习惯,同 时过滤无效点,程序获取用户的点击点,并取其平均值,根据算法计算出校准参数Xl,x2, Y1, y2,Z15Z2, div。所述xl,x2分别代表在竖向和横向上的X轴伸缩系数,yl,y2分别代表在竖 向和横向上的Y轴伸缩系数,zl, z2分别代表在竖向和横向上的修正值,div是阈值。所述 的校准算法为=XL = (XxXXi+YxXyi+z^/div^L = (YTX x2+YTX y2+z2)/div,所述 XL、YL 是显 示屏的坐标,XT、Yt是触摸屏的坐标。校准程序CAPP获取校准参数后将校准参数记录到文
5件/data/etc/pointercal ;校准程序CAPP做完校准之后设置系统属性为完成状态“PR0P_ CALIBRATE = FINISHED",通知应用框架新的校准参数生效,应用框架从文件/data/etc/ pointercal更新一下校准参数,并在以后的校准部分使用此参数。应用框架代码流程Static class transforminfo{Float xl ;Float yl ;Float zl ;Float x2 ;Float y2 ;Float z2 ;Float s ;};Static transforminfo tinfo ;Static final string calibration—file=" / data/etc/pointercal “;Static final string prop—calibrate =〃 app. cablibrate. prop";在处理驱动上报的原始点的时候首先确定是否在校准状态中String prop = systemproperties. get{prop_calibrate ; " noset“ };//log. i (logtag ; ‘‘ -----> ‘‘ +prop);If{prop, equalsignorecase(” start“ )} {Tinfo = null -J/如果在校准状态中,则非使能校准处理Bcalibrating = true ;}Else if{prop, equalsignorecase(” done“ )} {Systemproperties. set{prop_calibrate, " end" };ReadcalibrateO ;Bcalibrating = false ;}Else{Bcalibrating = false ;;//keep current tinfo status}…If (tinfo ! = null) {//r如果校准处理有效则进行校准处理Scaledx = {tinfo. xl*scaledX+tinfo. yl*scaledY+tinfo. zl}/tinfo. s ;Scaledx = {tinfo. x2*scaledX+tinfo. y2*scaledY+tinfo. z2}/tinfo. s ;…
}
…因为这种实现方法是通过属性系统进行应用框架和应用层同步信息的,而 android的属性系统是有权限分别的,故此需要额外在android的属性系统实现部分进行 定制,增加应用层第三方应用可以使用的属性。以上所述,仅为本发明较佳实施例而已,故不能依此限定本发明实施的范围,即依 本发明专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明涵盖的范围内。
权利要求
一种在Android平台下实现触摸屏校准的方法,所述Android框架包括内核层、本地库、应用框架、应用层,其特征在于所述方法包括如下步骤步骤10、所述内核层内的触摸屏驱动提供sysfs接口文件;步骤20、所述本地库调用所述sysfs接口文件,先通过非使能驱动校准ck_en=disable,获得触摸屏原始点,把触摸屏原始点发往应用框架;步骤30、应用框架将触摸屏原始点上报给应用层的校准程序CAPP;步骤40、校准程序CAPP通过标准算法获得校准参数,并将所获得的校准参数设置到驱动的sysfs接口文件;步骤50、启动本地库的使能驱动校准功能ck_en=enable,并退出程序。
2.根据权利要求1所述的一种在Android平台下实现触摸屏校准的方法,其特征在于 所述步骤40中获得校准参数的步骤具体包括在屏幕上依次画上、下、左、右、中5个点,用 户依次单击,此过程可以多次以便获得用户的点击习惯,同时过滤无效点,程序获取用户的 点击点,并取其平均值,根据算法计算出校准参数Xl,x2, Y1, y2, Z1, z2, div,所述xl,x2分别 代表在竖向和横向上的X轴伸缩系数,yl,y2分别代表在竖向和横向上的Y轴伸缩系数,zl, z2分别代表在竖向和横向上的修正值,div是阈值。
3.根据权利要求1或2所述的一种在Android平台下实现触摸屏校准的方法,其特征 在于所述的标准算法为=Xl = (ΧτX Xl+YT XyAz1Vdiv, Yl = (YTXx2+YTXy2+z2)/diV,所述 XL> Yl是显示屏的坐标,XT、Yt是触摸屏的坐标。
4.一种在Android平台下实现触摸屏校准的方法,所述Android框架包括内核层、本地 库、应用框架、应用层,其特征在于所述方法包括如下步骤步骤10、所述应用层的校准程序CAPP设置所述应用框架上的系统属性,通知应用框架 无需校准,直接上报原始点给校准程序CAPP ;步骤20、所述校准程序CAPP根据标准算法获得校准参数,并记录标准参数到文件/ data/etc/pointercal ;步骤30、校准程序CAPP设置系统属性为完成状态,通知应用框架新的校准参数生效并 且CAPP自动关闭,应用框架从文件/data/etc/pointercal更新校准参数,并在以后的校准 部分使用此参数。
5.根据权利要求4所述的一种在Android平台下实现触摸屏校准的方法,其特征在于 所述获得校准参数的步骤具体包括在屏幕上依次画上、下、左、右、中5个点,用户依次单 击,此过程可以多次以便获得用户的点击习惯,同时过滤无效点,程序获取用户的点击点, 并取其平均值,根据算法计算出标准参数Xl,X2, I1, I2, Z1, z2, div,所述xl,x2分别代表在 竖向和横向上的X轴伸缩系数,Il,12分别代表在竖向和横向上的Y轴伸缩系数,zl, z2分 别代表在竖向和横向上的修正值,div是阈值。
6.根据权利要求4或5所述的一种在Android平台下实现触摸屏校准的方法,其特征 在于所述的标准算法为=Xl = (ΧτX Xl+YT XyAz1Vdiv, Yl = (YTXx2+YTXy2+z2)/diV,所述 XL> Yl是显示屏的坐标,XT、Yt是触摸屏的坐标。
全文摘要
本发明提供一种在Android平台下实现触摸屏校准的方法,Android框架包括内核层、本地库、应用框架、应用层,步骤11、触摸屏驱动提供sysfs接口文件;12、本地库通过非使能驱动校准获得原始点再发往应用框架;13、应用框架将原始点上报给CAPP;14、CAPP通过标准算法获得校准参数并设置到sysfs接口文件;15、启动使能驱动校准再退出;方法二,步骤21、CAPP设置系统属性通知应用框架上报原始点;22、CAPP根据标准算法获得校准参数;23、CAPP设置系统属性,通知应用框架新的校准参数生效,应用框架更新校准参数。本发明能够根据不同用户的使用体验,动态的调整触摸屏的校准参数。
文档编号G06F9/445GK101980118SQ20101051764
公开日2011年2月23日 申请日期2010年10月22日 优先权日2010年10月22日
发明者何晓水, 钱光洪, 陈文耀 申请人:福建鑫诺通讯技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1