本发明涉及到软件处理技术领域,特别是涉及一种终端设备获取输入设备类型的方法及装置。
背景技术:
基于linux平台上的很多终端设备驱动例如触摸屏、传感器等都是以input(输入设备)的形式注册的。如何在这些输入设备中找到我们想要的那个设备成为一个重要的问题,目前很多工程师是通过在驱动固定设备名称,而后终端设备在cpp里面根据输入设备名称来获知是哪个设备类型。具体的说,例如将所有的tp的输入设备名都叫android_tp,那么只要读取到设备名称叫android_tp的都是tp设备,这种方法的问题在于,对于终端设备连接到每个输入设备都需要工程师去命名,比较麻烦。
因此,提供一种终端设备能自动地获取输入设备类型的方式成为亟待解决的问题。
技术实现要素:
本发明提出的终端设备获取输入设备类型的方法及装置,使得终端设备能自动地获取输入设备的类型。
本发明提出的终端设备获取输入设备类型的方法,包括:
获取待分析输入设备的赋有属性值的句柄中所有属性值;
通过分析函数分析所述属性值对应的输入设备的类型。
进一步地,所述获取待分析输入设备的赋有属性值的句柄中所有属性值的步骤之前,包括:
根据所述输入设备的类型分别设置输入设备的所有属性值。
进一步地,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤,包括:
通过分析函数分析获取到所述属性值包含有abs_mt_position_x和/或abs_mt_position_y时;
则判定所述输入设备为tp设备。
进一步地,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤,包括:
通过分析函数分析获取到所述属性值包含有abs_distance时;
则判定所述输入设备为接近传感器。
进一步地,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤,包括:
通过分析函数分析获取到所述属性值包含有abs_x、abs_y和/或abs_z时;
则判定所述输入设备为3d传感器。
本发明提出的终端设备获取输入设备类型的装置,包括:
获取单元,用于获取待分析输入设备的赋有属性值的句柄中所有属性值;
分析单元,用于通过分析函数分析所述属性值对应的输入设备的类型。
进一步地,所述的终端设备获取输入设备类型的装置还包括:
设置单元,用于根据所述输入设备的类型分别设置输入设备的所有属性值。
进一步地,所述分析单元,包括:
第一分析模块,用于通过分析函数分析获取到所述属性值包含有abs_mt_position_x和/或abs_mt_position_y时,则判定所述输入设备为tp设备。
进一步地,所述分析单元,包括:
第二分析模块,用于通过分析函数分析获取到所述属性值包含有abs_distance时,则判定所述输入设备为接近传感器。
进一步地,所述分析单元,包括:
第三分析模块,用于通过分析函数分析获取到所述属性值包含有abs_x、abs_y和/或abs_z时,则判定所述输入设备为3d传感器。
本发明的有益效果为:获取待分析输入设备的句柄;提取出句柄中输入设备的所有属性值;分析输入设备的所有属性值;根据分析结果判定输入设备的类型;对于终端设备连接到每个输入设备,不需要工程师通过专门编辑代码去命名,终端设备能自动地获取输入设备的类型,简单方便。
附图说明
图1为本发明一实施例中的终端设备获取输入设备类型的方法的步骤示意图;
图2为本发明另一实施例中的终端设备获取输入设备类型的方法的步骤示意图;
图3为本发明一实施例中的终端设备获取输入设备类型的装置的结构示意图;
图4为本发明另一实施例中的终端设备获取输入设备类型的装置的结构示意图;
图5为本发明一实施例中的终端设备获取输入设备类型的装置的分析单元的结构示意图;
图6为本发明另一实施例中的终端设备获取输入设备类型的装置的分析单元的结构示意图;
图7为本发明又一实施例中的终端设备获取输入设备类型的装置的分析单元的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本实施例中的终端设备获取输入设备类型的方法,包括:
步骤s1,获取待分析输入设备的赋有属性值的句柄中所有属性值;
步骤s2,通过分析函数分析所述属性值对应的输入设备的类型。
在步骤s1中,终端设备需要准确获取与其连接的input设备(输入设备)的类型,便于执行对应的功能。由于终端设备在cpp源代码文件中包含所有关于输入设备的所有属性值的代码,而不同的输入设备的所有属性值的代码存在着区别。当终端设备需要输入设备类型时,将通过获取函数获取待分析输入设备中赋有属性值的句柄中所有属性值。本实施例中的获取函数为openinput函数,当然本实施例中的获取函数并不限定于openinput函数,其它能将输入设备的赋有属性值的句柄中所有属性值获取出来的获取函数均可。
在步骤s2中,终端设备通过分析函数对获取函数获取的待分析输入设备赋有属性值的句柄中所有属性值进行分析,具体的,需要通过ioctl函数将获取函数获取的待分析输入设备赋有属性值的句柄中所有属性值直接放入到分析函数中。分析函数通过分析待分析输入设备赋有属性值的句柄中所有属性值,能根据不同的输入设备中包含的不同的特征属性值,来得到该特征属性值所对应的输入设备的类型。本实施例中的分析函数为test_bit函数,当然本实施例中的获取函数并不限定于test_bit函数,其它能将能根据不同的输入设备中包含的不同的特征属性值,来得到该特征属性值所对应的输入设备的类型的分析函数均可。对于终端设备连接到每个输入设备,不需要工程师通过专门编辑代码去命名,终端设备能自动地获取输入设备的类型,简单方便。
参照图2,另一实施例中的终端设备获取输入设备类型的方法,所述获取待分析输入设备的赋有属性值的句柄中所有属性值的步骤s1之前,包括:
步骤s1’,根据所述输入设备的类型分别设置输入设备的所有属性值。
在步骤s1’中,对于所有不同类型的输入设备,当终端设备与该输入设备连接后,终端设备中的设置函数会为该输入设备设置对应的所有属性值,即在cpp源代码文件中设置所有关于输入设备的所有属性值的代码。本实施例中的设置函数为set_bit函数。
其它实施例中的终端设备获取输入设备类型的方法,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤s2,包括:
步骤s21,通过分析函数分析获取到所述属性值包含有abs_mt_position_x和/或abs_mt_position_y时,则判定所述输入设备为tp设备。
在步骤s21中,当分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含tp设备特征属性值时,具体的说包含有abs_mt_position_x,或者包含有abs_mt_position_y,或者同时包含abs_mt_position_x和abs_mt_position_y时,则判定待分析输入设备为tp设备。
其它实施例中的终端设备获取输入设备类型的方法,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤s2,包括:
步骤s22,通过分析函数分析获取到所述属性值包含有abs_distance时,则判定所述输入设备为接近传感器。
在步骤s22中,当分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含接近传感器特征属性值时,具体的说包含有abs_distance,则判定待分析输入设备为接近传感器。
其它实施例中的终端设备获取输入设备类型的方法,所述通过分析函数分析所述属性值对应的输入设备的类型的步骤s2,包括:
步骤s23,通过分析函数分析获取到所述属性值包含有abs_x、abs_y和/或abs_z时,,则判定所述输入设备为3d传感器。
在步骤s23中,当分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含3d传感器特征属性值时,具体的说包含有abs_x、abs_y以及abs_z的一个或者多个,则判定待分析输入设备为3d传感器。
参照图3,本实施例中的终端设备获取输入设备类型的装置,包括:
获取单元10,用于获取待分析输入设备的赋有属性值的句柄中所有属性值;
分析单元20,用于通过分析函数分析所述属性值对应的输入设备的类型。
终端设备需要准确获取与其连接的input设备(输入设备)的类型,便于执行对应的功能。由于终端设备在cpp源代码文件中包含所有关于输入设备的所有属性值的代码,而不同的输入设备的所有属性值的代码存在着区别。当终端设备需要输入设备类型时,获取单元10将通过获取函数获取待分析输入设备中赋有属性值的句柄中所有属性值。本实施例中的获取函数为openinput函数,当然本实施例中的获取函数并不限定于openinput函数,其它能将输入设备的赋有属性值的句柄中所有属性值获取出来的获取函数均可。
分析单元20通过分析函数对获取函数获取的待分析输入设备赋有属性值的句柄中所有属性值进行分析,具体的,需要通过ioctl函数将获取函数获取的待分析输入设备赋有属性值的句柄中所有属性值直接放入到分析函数中。分析函数通过分析待分析输入设备赋有属性值的句柄中所有属性值,能根据不同的输入设备中包含的不同的特征属性值,来得到该特征属性值所对应的输入设备的类型。本实施例中的分析函数为test_bit函数,当然本实施例中的获取函数并不限定于test_bit函数,其它能将能根据不同的输入设备中包含的不同的特征属性值,来得到该特征属性值所对应的输入设备的类型的分析函数均可。对于终端设备连接到每个输入设备,不需要工程师通过专门编辑代码去命名,终端设备能自动地获取输入设备的类型,简单方便。
参照图4,另一实施例中的终端设备获取输入设备类型的装置,还包括:
设置单元30,用于根据所述输入设备的类型分别设置输入设备的所有属性值。
对于所有不同类型的输入设备,当终端设备与该输入设备连接后,设置单元30通过设置函数会为该输入设备设置对应的所有属性值,即在cpp源代码文件中设置所有关于输入设备的所有属性值的代码。本实施例中的设置函数为set_bit函数
参照图5,本实施例中的终端设备获取输入设备类型的装置,所述分析单元20,包括:
第一分析模块210,用于通过分析函数分析获取到所述属性值包含有abs_mt_position_x和/或abs_mt_position_y时,则判定所述输入设备为tp设备。
第一分析模块210通过分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含tp设备特征属性值时,具体的说包含有abs_mt_position_x,或者包含有abs_mt_position_y,或者同时包含abs_mt_position_x和abs_mt_position_y时,则判定待分析输入设备为tp设备。
参照图6,另一实施例中的终端设备获取输入设备类型的装置,所述分析单元20,包括:
第二分析模块220,用于通过分析函数分析获取到所述属性值包含有abs_distance时,则判定所述输入设备为接近传感器。
第二分析模块220通过分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含接近传感器特征属性值时,具体的说包含有abs_distance,则判定待分析输入设备为接近传感器。
参照图7,又一本实施例中的终端设备获取输入设备类型的装置,所述分析单元20,包括:
第三分析模块230,用于通过分析函数分析获取到所述属性值包含有abs_x、abs_y和/或abs_z时,则判定所述输入设备为3d传感器。
第三分析模块230通过分析函数分析获取到的待分析输入设备的赋有属性值的句柄中所有属性值中包含3d传感器特征属性值时,具体的说包含有abs_x、abs_y以及abs_z的一个或者多个,则判定待分析输入设备为3d传感器。
综上所述,本实施例的有益效果为:获取待分析输入设备的句柄;提取出句柄中输入设备的所有属性值;分析输入设备的所有属性值;根据分析结果判定输入设备的类型;对于终端设备连接到每个输入设备,不需要工程师通过专门编辑代码去命名,终端设备能自动地获取输入设备的类型,简单方便。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。