数据获取方法、装置和移动设备与流程

文档序号:12362859阅读:181来源:国知局
数据获取方法、装置和移动设备与流程

本发明涉及移动通信技术领域,尤其涉及一种数据获取方法、装置和移动设备。



背景技术:

移动设备上的触摸屏、音量键、传感器及用于控制移动设备的耳机线上的按键等都属于输入设备。以移动设备是android操作系统为例,android操作系统基于linux内核,对应输入设备,可以在linux内核建立输入(input)子系统。输入子系统对设备进行初始化时,会进行注册操作,包括对输入设备注册、事件注册等。在注册时会产生输入设备序号,如input1、input2等,以及,产生事件序号,如event1、event2等。

相关技术中,当应用(APP)需要获取数据时,根据input序号,确定与input序号相同的event序号,再获取该event序号对应的数据。比如,需要获取input1对应的数据时,直接确定该input1对应的event序号是event1,再获取event1的数据。

虽然一般情况下,input序号与event序号一致,比如,input1对应event1。但是,由于驱动多线程等原因,在一些情况下input序号与event序号并不一致,比如,第一线程创建了input1,第二线程创建了input2,由于多线程同时工作,那么就可能存在第二线程提前第一线程创建event序号,即,第二线程创建了event1,第一线程创建了event2,这样就会造成input序号与event序号不一致,此时直接根据input序号确定相同的event序号作为对应的event序号,就会造成数据获取错误,例如,将传感器的数据误认为是触摸屏的数据。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种数据获取方法,该方法可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

本发明的另一个目的在于提出一种数据获取装置。

本发明的另一个目的在于提出一种移动设备。

为达到上述目的,本发明第一方面实施例提出的数据获取方法,包括:确定输入设备序号;根据预先生成的设备文件,确定与所述输入设备序号对应的事件序号;根据所述事件序号,获取与所述事件序号对应的数据;其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

本发明第一方面实施例提出的数据获取方法,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在输入设备注册完成后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

为达到上述目的,本发明第二方面实施例提出的数据获取装置,包括:第一确定模块,用于确定输入设备序号;第二确定模块,用于根据预先生成的设备文件,确定与所述输入设备序号对应的事件序号;获取模块,用于根据所述事件序号,获取与所述事件序号对应的数据;其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

本发明第二方面实施例提出的数据获取装置,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在输入设备注册完成后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

为达到上述目的,本发明第三方面实施例提出的移动设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:确定输入设备序号;根据预先生成的设备文件,确定与所述输入设备序号对应的事件序号;根据所述事件序号,获取与所述事件序号对应的数据;其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

本发明第三方面实施例提出的移动设备,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在输入设备注册完成后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明一个实施例提出的数据获取方法的流程示意图;

图2是本发明另一个实施例提出的数据获取方法的流程示意图;

图3是本发明一个实施例提出的数据获取装置的结构示意图;

图4是本发明另一个实施例提出的数据获取装置的结构示意图;

图5是本发明一个实施例提出的移动设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本发明一个实施例提出的数据获取方法的流程示意图。

参见图1,该方法包括:

S11:确定输入设备序号。

其中,输入子系统会对输入设备的状态进行检测,当输入设备的状态发生变化时,输入子系统会根据状态变化情况生成对应的数据,并将数据封装在事件(event)中。

例如,将检测到音量减小键(-)被按下时,可以产生表明音量减小的数据,并将该数据封装在音量键这一输入设备对应的事件中。

另外,输入子系统会将状态发生变化的输入设备的序号(inputX,X=1,2,3…),如音量键这一输入设备的序号,上报给用户空间。

因此,用户空间可以从接收的信息中获取到输入设备序号,如input1。

S12:在预先生成的设备文件中,确定与所述输入设备序号对应的事件序号。

其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

例如,设备文件中记录input1对应event1,如果用户空间接收到的输入设备序号是input1,则可以确定对应的事件序号是event1。

进一步的,设备文件可以是由输入子系统创建的,且输入子系统在完成注册后,可以对应每个输入设备,获取输入设备序号和对应的事件序号,之后将输入设备序号和事件序号对应记录在设备文件中。

例如,输入子系统在注册完成后,确定序号为input1的设备对应的事件序号是event1,则在设备文件中建立input1与event1的对应关系。

进一步的,输入子系统在注册完成后,可以从输入设备句柄(input_handle)中获取输入设备序号和对应的事件序号。

S13:根据所述事件序号,获取与所述事件序号对应的数据。

其中,输入子系统在存储数据时,将数据封装在事件中,因此当用户空间确定事件序号后,可以将事件序号发送给输入子系统,输入子系统根据事件序号确定对应的事件,再从对应的事件中获取数据返回给用户空间。

进一步的,当用户空间获取到数据后,可以根据数据进行后续数据。具体的,用户空间在获取数据后,最终到达用户空间中的应用程序(Application,APP)中,APP获取到数据后可以据此进行处理,例如,当接收到表明音量减小的数据后,对音量进行减小处理。

本实施例中,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在完成注册后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。比如,第一线程创建了input1,第二线程创建了input2,即使第二线程提前第一线程创建event序号,即第二线程创建了event1,第一线程创建了event2,由于注册是根据实际情况注册,也就是在注册时会将input1对应event2,input2对应event1,因此,输入子系统在完成注册后获取input序号与event序号的对应关系时,会获取到准确的对应关系,如input1对应event2,input2对应event1。

图2是本发明另一个实施例提出的数据获取方法的流程示意图。

参见图2,本实施例的方法包括:

S21:输入子系统对输入设备进行注册处理。

其中,注册处理可以包括输入设备注册和事件注册。

输入设备注册例如将触摸屏、音量键、传感器、耳机线上的按键等注册为输入(input)设备。

事件注册是对输入设备的处理程序的注册。

在注册处理时,会产生输入设备序号和事件序号。

S22:输入子系统创建设备文件,并在完成注册后,对应每个输入设备,获取输入设备序号和对应的事件序号,以及,将获取的输入设备序号和事件序号的对应关系记录在设备文件中。

其中,可以在输入子系统中预先配置一个函数,采用该函数创建设备文件。

可以理解的是,输入子系统可以在注册完成之前创建设备文件,以便在输入设备注册完成之后获取到输入设备序号和事件序号后,将其对应记录在设备文件中。或者,

输入子系统也可以在注册完成之后再创建设备文件,并将获取的输入设备序号和事件序号对应记录在设备文件中。

另外,输入子系统可以根据输入设备句柄(input_handle),获取输入设备序号和对应的事件序号。

其中,输入设备句柄是输入子系统中的一个结构体,用于关联输入设备序号和事件序号,因此,通过输入设备句柄可以获取到相互对应的输入设备序号和事件序号。

S23:输入子系统在检测到输入设备发生状态变化后,根据变化情况生成数据,并封装在事件中。

例如,检测到音量减小键(-)被按下,则生成表明音量减小的数据,并封装在音量键对应的事件序号中,比如音频键对应的事件序号是event1,则将表明音量减小的数据封装在event1这一事件中。

又例如,检测到加速度传感器旋转后,则生成旋转对应的x、y、z轴的坐标值,将这三个坐标轴的坐标值封装在加速度传感器对应的事件序号,如event2中。

进一步的,为了保证数据的实时性,该方法还可以包括:

输入子系统确定数据生成时间,并将所述生成时间作为时间戳,与数据对应记录。

例如,表明音量减小的数据(假设用data1表示)的生成时间是t1,则在输入子系统中对应记录:event1、data1和t1。

又例如,加速度传感器旋转的三个坐标值(假设用data2表示)的生成时间是t2,则在输入子系统中对应记录:event2、data2和t2。

S24:输入子系统在检测到输入设备发生状态变化后,将发生变化的输入设备的序号发送给用户空间。

例如,音量键对应的输入设备序号用input1表示,则输入子系统检测到音量减小按键被按下后,则向用户空间发送input1。

S25:用户空间根据接收的输入设备序号,在设备文件中查找,确定与接收的输入设备序号对应的事件序号。

例如,设备文件中记录input1对应event1,则当接收到input1后,确定对应的事件序号是event1。

具体的,根据设备文件确定与接收的输入设备序号对应的事件序号的模块可以具体是用户空间中的硬件抽象层(hardware abstract layer,HAL)或应用程序框架层(application framework)。

S26:用户空间根据确定的事件序号,从输入子系统获取对应的数据。

例如,确定出的事件序号是event1,则确定对应的数据是event1对应的数据。

进一步的,用户空间在获取数据时,还可以根据当前时间,获取与所述事件序号对应,且时间戳距离当前时间最近的数据。

例如,输入子系统中记录:event1、data11和t11,以及event1、data12和t12,假设确定出的事件序号是event1,且t12距离当前时间最近,则获取的数据是data2。

S27:APP根据获取的数据作出相应反应。

例如,可以是HAL层或框架层从输入子系统获取数据后,将数据上报给APP,之后APP可以根据数据进行相应反应。

例如,得到音量-被按下,则降低音量;音量+被按下,增大音量。加速度传感器x,y,z轴数据为(0,0,9.8)左右时横屏;(0,9.8,0)时竖屏等。

本实施例中,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在完成注册后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。进一步的,通过对数据标记时间戳,可以保证数据获取的实时性。

图3是本发明一个实施例提出的数据获取装置的结构示意图。

参见图3,该装置30包括:第一确定模块31、第二确定模块32和获取模块33。

第一确定模块31,用于确定输入设备序号;

第二确定模块32,用于根据预先生成的设备文件,确定与所述输入设备序号对应的事件序号;

获取模块33,用于根据所述事件序号,获取与所述事件序号对应的数据;

其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

一些实施例中,参见图4,本实施例的装置30还包括:

创建模块34,用于创建设备文件,并在完成注册后,对应每个输入设备,获取输入设备序号和对应的事件序号,以及,将获取的输入设备序号和事件序号的对应关系记录在设备文件中。

一些实施例中,所述创建模块34用于获取输入设备序号和对应的事件序号,包括:

根据输入设备句柄,获取输入设备序号和对应的事件序号。

一些实施例中,所述获取模块33具体用于:

获取与所述事件序号对应,且时间戳距离当前时间最近的数据。

一些实施例中,参见图4,该装置30还包括:

记录模块35,用于在检测到输入设备的状态发生变化后,生成数据,将数据封装在状态发生变化的输入设备对应的事件中,并对应数据记录时间戳。

可以理解的是,上述的第一确定模块、第二确定模块和获取模块可以具体位于用户空间,上述的创建模块和记录模块可以具体位于内核空间的输入子系统中。

可以理解的是,本实施例的装置与上述的方法实施例对应,具体内容可以参见方法实施例中的描述,在此不再详细说明。

本实施例中,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在输入设备注册完成后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

图5是本发明一个实施例提出的移动设备的结构示意图。

该移动设备可以具体是android系统的移动设备,如android手机。

参见图5,该移动设备50包括:壳体51、处理器52、存储器53、电路板54、电源电路55和传感器56,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为移动设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序。传感器56用于执行以下步骤:

确定输入设备序号;

根据预先生成的设备文件,确定与所述输入设备序号对应的事件序号;

根据所述事件序号,获取与所述事件序号对应的数据;

其中,所述设备文件中记录输入设备序号与事件序号的对应关系,所述对应关系是输入子系统完成注册后确定的。

可选的,还包括:

输入子系统创建设备文件,并在完成注册后,对应每个输入设备,获取输入设备序号和对应的事件序号,以及,将获取的输入设备序号和事件序号的对应关系记录在设备文件中。

可选的,所述获取输入设备序号和对应的事件序号,包括:

根据输入设备句柄,获取输入设备序号和对应的事件序号。

可选的,所述获取与所述事件序号对应的数据,包括:

获取与所述事件序号对应,且时间戳距离当前时间最近的数据。

可选的,还包括:

输入子系统在检测到输入设备的状态发生变化后,生成数据,将数据封装在状态发生变化的输入设备对应的事件中,并对应数据记录时间戳。

可以理解的是,本实施例的移动设备与上述的方法实施例对应,具体内容可以参见方法实施例中的描述,在此不再详细说明。

本实施例中,根据设备文件确定输入设备序号对应的事件序号,并且设备文件中记录的输入设备序号与事件序号之间的对应关系是在输入设备注册完成后确定的,由于获取了注册后的实际信息,可以保证输入设备序号与事件序号之间的对应关系的准确性,因此在获取数据时可以根据输入设备序号确定出准确的事件序号,从而保证获取的输入设备数据的准确性。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1