发明内容
为了解决上述问题,本发明提供了一种无需修改代码直接适配重力感应器的方法,该方法能够使任何一个不懂代码的人,不需要修改任何代码,只需要按照步骤确认方向就能改变这种情况,并且保证开机仍然能够保证方向正确。
本发明的其中一个目的是提供一种无需修改代码直接适配重力感应器的方法,其包括:
将移动终端屏幕分别垂直于***预置的X轴、Y轴和Z轴放置,并分别将重力感应器在各放置位置输出的加速度数值与设定范围相比较,同时将加速度方向与***预置的X轴、Y轴和Z轴方向比较,然后将比较结果保存在移动终端内;
其中,***读取该比较结果,并通过该比较结果对重力感应器输出的加速度进行校正,使其与***预置的X轴方向、Y轴方向和Z轴方向相对应。
优选的是,重力感应器通过三个输出通道分别输出相互垂直的三个方向的加速度;
将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与Z轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Z轴数据输出通道,并将Z轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与Y轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Y轴数据输出通道,并将Y轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与X轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为X轴数据输出通道,并将X轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Z轴、Y轴、X轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的三个输出通道与***预置的Z轴、Y轴及X轴一一对应,并将重力感应器的三个输出通道输出的加速度与***预置的Z轴方向、Y轴方向及X轴方向一一对应。
优选的是,将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与Z轴正方向相反,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Z轴数据输出通道,并将Z轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Z轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的Z轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的Z轴方向对应。
优选的是,将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与Y轴正方向相反,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Y轴数据输出通道,并将Y轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Y轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的Y轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的Y轴方向对应。
优选的是,将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与X轴正方向相反,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为X轴数据输出通道,并将X轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的X轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的X轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的X轴方向对应。
优选的是,若重力感应器检测的加速度数值不在所述设定范围内,则微调屏幕朝向至加速度数值位于所述设定范围内。
优选的是,将Z轴、Y轴和X轴数据输出通道信息及与其对应的加速度方向信息保存为一方向配置文件,并使该方向配置文件跟随***启动。
优选的是,所述设定范围为60%g~102%g,g为重力加速度。
优选的是,移动终端的***为Android***。
本发明至少包括以下有益效果:
1、用户可通过简单地将移动终端屏幕分别垂直于***预置的X轴、Y轴和Z轴放置,通过与设定范围比较校正对应的重力感应器检测的加速度,进而适配重力感应器,无需要工程技术人员通过修改移动终端源代码来适配重力感应器,方便易行。
2、本发明只需在***预置的X轴、Y轴和Z轴三个方向上,校准得出正确的重力感应器数据输出通道和对应的加速度,在其他方向上重力感应器检测的加速度可分解为这三个坐标轴的分量加速度,因此无需校准其他方向上的重力感应器数据输出通道和对应的加速度。
3、将与***预置的X轴、Y轴和Z轴对应的数据通道和对应的加速度信息保存为一方向配置文件,使重力感应方向数据经校准后即可生效,而无需重新启动移动终端后生效,并且重新开机时,能够维持重力感应器按照方向配置文件中Z轴校准数据输出通道、Y轴校准数据输出通道和X轴校准数据输出通道以及它们相应的加速度信息进行读取,因此可调用上一次的校准数据通道和校准符号来确定重力感应器输出数据通道和数据方向,无需重新校准。
4、设定范围为60%g~102%g,g为重力加速度,以重力加速度为中心,设定一个取值范围,可放宽用户放置移动终端的条件,避免所设置的校准程序只在移动终端预置的X、Y和Z坐标轴仅在准确垂直向下时才执行,避免用户多次重复操作放置移动终端。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
具体实施方式
下面对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不配出一个或多个其它元件或其组合的存在或添加。
将移动终端屏幕分别垂直于***预置的X轴、Y轴和Z轴放置,并分别将重力感应器在各放置位置输出的加速度数值与设定范围相比较,同时将加速度方向与***预置的X轴、Y轴和Z轴方向比较,然后将比较结果保存在移动终端内;
其中,***读取该比较结果,并通过该比较结果对重力感应器输出的加速度进行校正,使其与***预置的X轴方向、Y轴方向和Z轴方向相对应。
在上述技术方案中,用户可通过简单地将移动终端屏幕分别垂直于***预置的X轴、Y轴和Z轴放置,通过与设定范围比较校正对应的重力感应器检测的加速度,进而适配重力感应器,无需要工程技术人员通过修改移动终端源代码来适配重力感应器,方便易行。由于重力传感器正常情况下测得的加速度是和移动终端屏幕画面在放置过程中速度的加速度相符的,在***预置的X轴方向、Y轴方向和Z轴方向,正常情况下重力传感器测得的加速度大小应在设定范围内,方向应为这三个坐标轴的正方向,但由于重力感应器硬件布线,器件布局的不同,粘贴在硬件板子上的正方向就不同,导致重力感应器检测的重力加速度与实际用户界面显示的不符,所以需要对重力感应器输出结果进行校正。在这里,本发明只需在***预置的X轴、Y轴和Z轴三个方向上,校准得出正确的重力感应器数据输出的加速度,在其他方向上重力感应器检测的加速度可分解为这三个坐标轴的分量加速度,因此无需校准其他方向上的重力感应器数据输出通道和对应的加速度。
在另一种实例中,重力感应器通过三个输出通道分别输出相互垂直的三个方向的加速度;
将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与Z轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Z轴数据输出通道,并将Z轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与Y轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为Y轴数据输出通道,并将Y轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,且方向与X轴正方向相同,而另两个输出通道输出的加速度数值近似为零,则将输出的加速度数值不为零的输出通道作为X轴数据输出通道,并将X轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Z轴、Y轴、X轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的三个输出通道与***预置的Z轴、Y轴及X轴一一对应,并将重力感应器的三个输出通道输出的加速度与***预置的Z轴方向、Y轴方向及X轴方向一一对应。
在以上技术方案中,重力感应器硬件布线,器件布局的不同,粘贴在硬件板子上的正方向就不同,所以重力感应器感应的初始方向不一定就是移动终端界面的正确方向,不进行移动终端修改源代码可能会导致屏幕显示图片不正常,由于重力感应器内含有检测加速度的加速计,向装有重力感应器的移动终端中内输入方向校准程序,校准移动终端在三维坐标的三个坐标轴上的加速度,使移动终端驱动适配重力感应器,并且由于重力感应器本身包括三条数据输出通道,每条数据通道输出加速度数值及方向,在这里,如图1,三条数据输出通道分别标号为0、1、2,加速度正方向用符号1表示,故我们只要校准在所设定的X、Y、Z轴分别对应的重力感应器输出数据通道及对应输出的加速度方向符号便可实现对移动终端的方向校准。
将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,其中0和1输出通道数据为0,输出通道2输出数据在设定范围内,并且方向为正,则将数据输出通道2作为Z轴校准数据通道,对应加速度符号1作为Z轴校准符号,保存此时Z轴数据通道和对应的Z轴方向符号。
由于X轴和Y轴均在水平方向,所以X轴和Y轴所对应的输出通道可以互换或重复但不会占用Z轴所用的输出通道,剩余的输出通道0和1均可作为X轴或Y轴的数据输出通道,故输出通道0和1均需要验证是否为X轴或Y轴的数据输出通道。将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,此时Z轴数据通道2输出数据为0,判断另外两个0和1输出通道若有一个输出的数据在设定范围内并且另一个输出数据为0,并且加速度方向为正,则将这条输出通道作为Y轴校准数据通道,对应的加速度符号1作为Y轴校准符号,保存此时Y轴数据通道和对应的Y轴方向符号。
同样,将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,此时Z轴数据通道2输出数据为0,判断另外两个0和1输出通道若有一个输出的数据在设定范围内并且另一个输出数据为0,并且加速度方向为正,则将这条输出通道作为X轴校准数据通道,对应的加速度符号1作为X轴校准符号,保存此时X轴数据通道和对应的X轴方向符号。
另外在下次开机时不需要校准程序在进行重新校准找出新的方向校准数据,而是移动终端***可根据读取已保存的数据输出通道和对应的方向符号来确定正确的输出通道和加速度方向,不需要重新修改调试移动终端源代码来适配重力感应器。
在另一种实例中,将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与Z轴正方向相反,而另两个输出通道输出的加速度数值为0,则将输出的加速度数值不为0的输出通道作为Z轴数据输出通道,并将Z轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Z轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的Z轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的Z轴方向对应,。
在上述技术方案中,由于重力感应器硬件板在移动终端中有四个位置可贴,而且正贴反贴也不一定,所以重力感应器感应的初始方向不一定就是被贴移动终端图片的正确方向,重力感应器检测的加速度数值在设定范围内,但是方向与***预置坐标轴正方向相反,则此时,数据输出通道仍为坐标轴对应的数据输出通道,但在***读取重力感应器输出信息时,需要通过加速度符号乘以-1对加速度做方向变换,从而得到正确的数据输出通道和数据方向。如图1,在这里,Z轴数据输出通道标号仍为2,其对应的加速度的方向符号为-1。
在另一种实例中,将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与Y轴正方向相反,而另两个输出通道输出的加速度数值为0,则将输出的加速度数值不为0的输出通道作为Y轴数据输出通道,并将Y轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的Y轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的Y轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的Y轴方向对应。
在以上技术方案中,如图1,在这里,Y轴数据输出通道标号为1或0,其对应的加速度的方向符号为-1。
在另一种实例中,将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,若重力感应器的一个输出通道输出的加速度数值在设定范围内,但方向与X轴正方向相反,而另两个输出通道输出的加速度数值为0,则将输出的加速度数值不为0的输出通道作为X轴数据输出通道,并将X轴数据输出通道信息及与其对应的加速度方向信息保存在移动终端内;
其中,***通过读取保存在移动终端内的X轴数据输出通道信息及与其对应的加速度方向信息,将重力感应器的该输出通道与***预置的X轴对应,并将重力感应器的该输出通道输出的加速度乘以-1后代表的方向与***预置的X轴方向对应。
在以上技术方案中,如图1,在这里,X轴数据输出通道标号为1或0,其对应的加速度的方向符号为-1。
在另一种实例中,若重力感应器检测的加速度数值不在所述设定范围内,则微调屏幕朝向至加速度数值位于所述设定范围内;
在另一种实例中,在上述技术方案中,当用户将按照校准程序提示,将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,若重力感应器输出的加速度数值不在设定范围内,其说明X和Y坐标轴加速度分量不为0,用户没有将移动终端屏幕垂直于***预置的Z轴,并使屏幕表面朝向Z轴正方向,需要重新放置移动终端,至加速度数值位于设定范围内。
同样,将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,若重力感应器输出的加速度数值不在设定范围内,其说明X和Z坐标轴加速度分量不为0,用户没有将移动终端屏幕垂直于***预置的Y轴,并使屏幕表面朝向Y轴正方向,需要重新放置移动终端,至加速度数值位于设定范围内。
将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,若重力感应器输出的加速度数值不在设定范围内,其说明Z和Y坐标轴加速度分量不为0,用户没有将移动终端屏幕垂直于***预置的X轴,并使屏幕表面朝向X轴正方向,需要重新放置移动终端,至加速度数值位于设定范围内。
在另一个实施例中,将Z轴、Y轴和X轴数据输出通道信息及与其对应的加速度方向信息保存为一方向配置文件,并使该方向配置文件跟随***启动。
在以上技术方案中,使重力感应方向数据经校准后即可生效,而无需重新启动移动终端后生效,并且重新开机时,能够维持重力感应器按照方向配置文件中Z轴校准数据输出通道、Y轴校准数据输出通道和X轴校准数据输出通道以及它们相应的加速度信息进行读取,因此可调用上一次的校准数据通道和校准符号来确定重力感应器输出数据通道和数据方向,无需重新校准。这里,如图1和图2,将重力感应器三个输出通道分别标号为0、1、2,对应的方向符号为1和-1表示,其中1表示不需要反转,-1表示需要反转;以数字的形式保存在配置文件中,方便***识别和读取,并且设CH2为重力感应器输出通道2上的数据;CH1为重力感应器输出通道1上的数据;CH0为重力感应器输出通道0上的数据,保存的“方向配置文件”文件格式如下:{Xch,Xsig,Ych,Ysig,Zch,Zsig},其中,Xch为X轴的数据对应的重力感应器输出通道,Xsig为X轴上的数据是否需要反转方向;Ych为Y轴的数据对应的重力感应器输出通道,Ysig为Y轴上的数据是否需要反转方向,1表示不需要反转,-1表示需要反转;Zch为Z轴的数据对应的重力感应器输出通道,Zsig为Z轴上的数据是否需要反转方向,1表示不需要反转,-1表示需要反转。比如,此时,Z轴、Y轴和X轴校准数据通道标号分别是2、1、0及对应的校准符号分别为-1、1、1,则保存在方向配置文件中的格式为{0,1,1,1,2,-1},说明X轴经输出通道0输出加速度数据,X轴加速度方向与正方向相同,不需要反转;Y轴经输出通道1输出加速度数据,但Y轴加速度方向与正方向相同,不需要需要反转;Z轴经输出通道2输出加速度数据,Z轴加速度方向与正方向不相同,需要反转。
并且重新开机时,能够维持重力感应器输出通道和方向符号按照方向配置文件中进行读取,无需重新校准。
在另一个实施例中,所述设定范围为60%g~102%g,g为重力加速度数值,这里,所设定的范围是以重力加速度g为范围中心的小区域置信空间,为(6,10),可放宽用户放置移动终端的条件,避免所设置的校准程序只在移动终端的X、Y和Z坐标轴仅在准确垂直向下时才执行,避免用户多次重复操作放置移动终端。
在另一个实施例中,移动终端的***为Android***,这里,所述的移动终端可以为装有Android***的手机、平板以及游戏机等。
这里说明的处理规模是用来简化本发明的说明的。对本发明的无需修改代码直接适配重力感应器的方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的实例。