本发明实施例涉及Android技术领域,尤其涉及一种用于安卓系统中传感器的数据处理方法及装置。
背景技术:
随着安卓(Android)系统的发展,安卓系统已经不仅限于在例如手机等简单的应用场景下使用,而是已经逐渐扩展到诸如机器人、运动监控等较复杂的应用场景。在这些复杂的应用场景中,有时某一类型的一个传感器已经满足不了应用的需求,往往需要多个同种类型的传感器的协作来完成相应的功能。例如:加速度传感器,在机器人的头部,肩部,臂膀,腰部,腿部,都有布置来着重提取不同位置的运动特性差异。更极端的如压力传感器、温度传感器,它们在同一个运动部位的不同点,将大量布放。
然而,在目前的安卓系统传感器方案中,仅能操作同类型的一颗传感器,这样就给安卓系统在上述较复杂的应用场景中的应用带来了困难。
技术实现要素:
本发明实施例提供一种用于安卓系统中传感器的数据处理方法及装置,用以在一个安卓系统上同时支持多个同类型的传感器,使得安卓系统能够同时加载同类型的多个传感器的数据。
本发明实施例第一方面提供一种用于安卓系统中传感器的数据处理方法,该方法包括:
获取传感器的标识信息;
根据所述传感器的标识信息,确定所述传感器中是否包括多个同种类型的传感器;
若包括,则通过相应的扩展接口加载所述多个同种类型的传感器的数据,以根据所述数据进行相应的操作。
本发明实施例第二方面提供一种运行安卓系统的装置,该装置至少包括一种类型的传感器,特别的,该装置还包括:
获取模块,用于获取传感器的标识信息;
确定模块,用于根据所述传感器的标识信息,确定所述传感器中是否包括多个同种类型的传感器;
加载模块,用于当所述传感器中包括多个同种类型的传感器时,通过相应的扩展接口加载所述多个同种类型的传感器的数据,以根据所述数据进行相应的操作。
本发明实施例,通过扩展现有安卓系统中传感器的标识方法,使得在传感器数据的加载调用时,能够根据传感器的标识信息,对同种类型的多个传感器进行识别,通过对安卓系统的接口进行扩展,使得安卓系统能够同时加载调用多个同类型的传感器的数据,而不是像现有技术那样,在一个安卓系统中,仅支持每种类型的一个传感器,从而提高了安卓系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的用于安卓系统中传感器的数据处理方法的流程示意图;
图2为本发明一实施例提供的步骤S101执行方法的流程示意图;
图3为本发明一实施例提供的能够运行安卓系统的装置的结构示意图;
图4为本发明一实施例提供的获取模块11的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。
图1为本发明一实施例提供的用于安卓系统中传感器的数据处理方法的流程示意图,该方法可以由一运行安卓系统的装置来执行。如图1所示,本实施例提供的方法包括如下步骤:
步骤S101、获取传感器的标识信息。
在本实施例中,传感器的标识信息包括传感器的名称信息和标识值,其中,优选的,传感器的名称信息可以由传感器的类型和序号组成,传感器的序号用来标识传感器在同类型传感器中的排序,即用于表示传感器是同类型中的第几个传感器。当然,实际应用中,传感器的名称信息也可以仅由传感器的类型组成,并通过统计相同类型传感器的个数,来确定系统中是否存在同种类型的多个传感器,对此本实施例中不多做赘述。特别的,本实施例中,每个传感器的名称信息和标识值均具有唯一性。
实际应用中,传感器的标识信息是在安卓系统(以下简称系统)初始化时生成的,这与现有技术相同。与现有技术不同的是,本实施例在现有技术的基础上对传感器的标识方法进行了扩展。
例如,目前在现有技术中,安卓系统定义了26种基础的传感器类型。由于传统的安卓系统中每种类型只支持一个传感器,因此,传统技术采用的方法是采用1-26范围内的数字为每种类型传感器的身份进行标识,以达到区分系统中传感器的目的。但是,随着安卓系统定义的基础传感器类型的增多或减少,用于对传感器类型进行身份标识的数值范围也可能存在不同,比如,可以用数字“1”、“2”、“3”,分别对系统中不同类型的三个传感器的身份进行标识。当然此处仅为示例说明,并不是对本发明的唯一限定。
对于传感器名称的标识,现有技术中用一串能够表示传感器类型的字符串对传感器的名称进行标识。例如加速度传感器的名称标识为“accelerometer”。
本实施例中,为了使安卓系统能够同时支撑多个同类型的传感器,并能够对每个传感器进行识别和区分,优选采用表达式:传感器的标识值=预设值×传感器的序号+传感器类型对应的类型值,来生成传感器身份的标识值,其中,符号“×”和“+”代表数学含义“乘”和“加”,预设值的取值大于传感器的类型的数量,比如当前安卓系统定义了26个基础的传感器类型,则预设值应设置为大于26的数。而这里所述的传感器类型对应的类型值,即为传统安卓系统中用于对每种类型传感器的身份进行标识的数字的值。比如,传统技术中采用数字“1”对加速度传感器的身份进行标识,则加速度传感器对应的类型值为1。
另外,为了对同系统中的多个同类型的传感器进行识别,本实施例对现有的传感器名称的标识方法进行了扩展,采用将传感器的类型和序号进行组合的方式来对传感器的名称进行标识。比如,可以将多个加速度传感器中的第一个加速度传感器的名称标识为:“accelerometer#1”,将第二个加速度传感器的名称标识为:“accelerometer#2”,当然此处仅为示例说明,并不是对本发明的唯一限定。
特别的,图2为本发明一实施例提供的步骤S101执行方法的流程示意图,如图2所示,实际应用中步骤S101可以通过如下方法实现:
步骤S201、遍历传感器的控制路径,获取传感器的信息列表。
具体的,传感器的控制路径是在系统的初始化过程生成了,即在根据上述方法生成传感器的标识值和名称信息后,即可根据传感器的标识值和名称信息建立传感器的控制路径。此与现有技术类似,在这里不再赘述。
在获取传感器信息列表的过程中,首先遍历所有的传感器的控制路径,并将遍历获得的传感器的名称信息和标识值关联存储在预先生成的空白表中,生成包含系统中所有传感器的信息的目录列表。进一步的,再根据生成的目录列表,以及初始化生成的传感器的名称信息,确定系统中传感器的信息列表。具体的方法是将初始化生成的传感器的名称信息逐项与目录列表中存储的名称信息进行匹配,若目录列表中的某一名称信息与初始化生成的名称信息匹配,则保留该条名称信息,否则删除该条名称信息。特别的,为了增加系统的可靠性,避免错误的发生,本实施例中,在获得上述目录列表后,还可以通过确定初始化生成的传感器的标识值和对应的名称信息是否与目录列表中关联存储的标识值和名称信息同时匹配,来对目录列表进行清洗。通过删除目录列表中匹配错误的名称信息和标识值,以最终确定系统中传感器的信息列表。
本步骤执行过程中的其他细节与现有技术类似,在这里不再赘述。
步骤S202、从所述信息列表中,获取传感器的标识信息。
在图1所示的方法中还包括步骤S102、根据所述传感器的标识信息,确定所述传感器中是否包括多个同种类型的传感器,若是,则执行步骤S103。
实际应用中,在获得系统中传感器的标识信息后,首先根据传感器的标识信息,确定传感器的类型是否是预设的类型。其中,预设的类型是指为了达到系统目的,系统所需要的传感器的类型。在实际操作中,可将传感器标识信息中用于标识传感器类型的字符串与预设的类型的字符串进行匹配,若传感器的类型与预设的类型匹配,则确定传感器是预设的类型,否则不是。进一步的,当传感器的类型与预设的类型匹配时,再确定系统中是否存在类型相同,序号不同的传感器,若存在,则确定系统的传感器中,包括多个同种类型的传感器。
在图1所示的方法中还包括步骤S103、通过相应的扩展接口加载所述多个同种类型的传感器的数据,以根据所述数据进行相应的操作。
为了使系统中的多个同类型的传感器能够发挥作用,本实施例中对传统安卓系统的接口进行了扩展,即在保留传统接口的基础上,又扩展了新的接口,当系统中某类型传感器的数量只有一个时,则默认通过传统接口加载对应传感器的数据,而当系统中某类型传感器的数量为多个时,则通过扩展的接口加载对应传感器的数据,另外,本实施例中新扩展的接口可以是一个也可以是多个,当扩展接口的数量为一个时,可以采用时序的方式依次获取同种类型的多个传感器的数据,当扩展接口的数量为多个时,可以采用并行的方式同时获取同类型的多个传感器的数据。
这样,不但使得系统能够同时支持多个同类型的传感器,还能够兼容传统的传感器方案。
本实施例,通过扩展现有安卓系统中传感器的标识方法,使得在传感器数据的加载调用时,能够根据传感器的标识信息,对同种类型的多个传感器进行识别,通过对安卓系统的接口进行扩展,使得安卓系统能够同时加载调用多个同类型的传感器的数据,而不是像现有技术那样,在一个安卓系统中,仅支持每种类型的一个传感器,从而提高了安卓系统的性能。
图3为本发明一实施例提供的能够运行安卓系统的装置的结构示意图,该装置包括至少一种类型的传感器。如图3所示,本实施例提供的装置包括:
获取模块11,用于获取传感器的标识信息;
确定模块12,用于根据所述传感器的标识信息,确定所述传感器中是否包括多个同种类型的传感器;
加载模块13,用于当所述传感器中包括多个同种类型的传感器时,通过相应的扩展接口加载所述多个同种类型的传感器的数据,以根据所述数据进行相应的操作。
其中,所述传感器的标识信息包括:所述传感器的名称信息,其中,所述传感器的名称信息包括传感器的类型和序号,所述序号用于标示传感器在同类型传感器中的排序;
所述装置还包括:
初始化模块14,用于初始化生成所述传感器的名称信息。所述传感器的标识信息还包括传感器的标识值;
所述初始化模块14,还用于初始化生成所述传感器的标识值,其中,
传感器的标识值=预设值×传感器的序号+传感器类型对应的类型值,所述预设值大于传感器的类型的数量。
所述确定模块12,具体用于:
根据所述传感器的标识信息,确定所述传感器的类型是否属于预设类型;
若是,则确定所述传感器中是否存在类型相同,序号不同的传感器;
若存在,则确定所述传感器中包括多个同种类型的传感器。
本实施例提供的装置能够用于图1实施例所示的方法,其执行方式和有益效果类似,在这里不再赘述。
图4为本发明一实施例提供的获取模块11的结构示意图,如图4所示,本实施在图3所示结构的基础上,所述获取模块11包括:
第一确定子模块111,用于遍历初始化生成的传感器的控制路径,确定传感器的目录列表,所述目录列表包括传感器的名称信息和标识值;
第二确定子模块112,用于根据所述目录列表,以及初始化生成的传感器的名称信息,或初始化生成的传感器的名称信息和标识值,确定所述传感器的信息列表;
获取子模块113,用于从所述信息列表中,获取传感器的标识信息。
其中,所述第二确定子模块112,还用于:
将初始化生成的传感器的名称信息逐项与所述目录列表中的名称信息进行匹配,删除所述目录列表中匹配错误的名称信息,形成所述传感器的信息列表。
所述第二确定子模块112,还用于:
确定初始化生成的传感器的标识值和对应的名称信息,是否与所述目录列表中互相对应的标识值和名称信息同时匹配;
删除所述目录列表中匹配错误的名称信息和标识值,形成所述传感器的信息列表。
本实施例提供的装置能够用于图2实施例所示的方法,其执行方式和有益效果类似,在这里不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。