一种基于安卓系统的设备接口的控制方法及系统的制作方法

文档序号:6385694阅读:155来源:国知局
专利名称:一种基于安卓系统的设备接口的控制方法及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其是一种基于安卓系统的设备接口的控制方法及系统。
背景技术
Android (安卓)系统是一种以Linux为基础的开放源码操作系统,主要使用在移动设备上。如图1所示,Android (安卓)系统自顶层向下可分为五层应用程序层、应用程序框架、系统运行库、硬件抽象层和Linux内核。原生Android (安卓)系统用于移动设备上,其不支持串口和GPIO (GeneralPurpose Input Output,通用输入/输出)等设备接口。为了支持这些设备接口,现有技术会通过修改Android (安卓)系统源码或者使用JNI (Java Native Interface, JAVA本地调用)机制来达到支持的目的。然而,修改系统源码需要在Android (安卓)系统五层中的每一层中进行修改,其修改的范围大,开发过程复杂。而且其应用程序必须与系统配套,会造成系统本身及系统的应用框架不再通用,大大降低了系统的通用性。而使用JNI (JAVA本地调用)机制只是单纯绕过应用程序框架的接口。可是应用程序框架是用于维护系统自身安全以及设备访问权限的,所以此技术使安卓系统丧失原有的系统安全性以及权限保护。并且JNI开发过程十分繁琐,可能会为了完成一个应用程序而需要编写多个对应的JNI,而这些JNI不一定能够在其他系统中重复应用,其中其可重用性低。因此,目前还没有一种安卓系统,既能兼容除移动终端设备接口外的其他设备接口,又能维持系统的安全性和设备访问权限。

发明内容
为了解决上述技术问题,本发明的一个目的是提供一种基于安卓系统的设备接口的控制方法,该方法既能兼容除移动终端设备接口外的其他设备接口,又能维持系统的安全性和设备访问权限。本发明的另一个目的是提供一种基于安卓系统的设备接口的控制系统,该系统既能兼容除移动终端设备接口外的其他设备接口,又能维持系统的安全性和设备访问权限。本发明解决其技术问题所采用的技术方案是一种基于安卓系统的设备接口的控制方法,包括
A、对硬件抽象层的服务模块进行初始化,从而生成套接字;
B、调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接;
C、所述服务模块对客户端模块进行权限验证,从而判断客户端模块是否具备访问设备的权限,若是,则执行步骤D,反之,则结束操作并告知客户端模块其不具备访问设备的权限; D、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。进一步,所述步骤C,其包括
Cl、所述客户端模块向服务模块发送获取一个通用唯一识别码的请求;
C2、所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块;
C3、所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块;
C4、所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。进一步,所述步骤D,其包括
D1、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据;
D2、服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作;
D3、服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。进一步,在所述步骤C4之后还设有步骤C5,所述步骤C5,其具体为所述具备访问设备的权限的客户端模块向服务模块发送使用其所需的设备接口的请求,服务模块接收到所述请求后,判断其所需的设备接口是否存在以及其所需的设备接口当前是否被其它客户端模块使用;若其所需的设备接口存在且其所需的设备接口当前未被其它客户端模块使用,则允许所述具备访问设备的权限的客户端模块使用其所需的设备接口 ;反之,则告知所述具备访问设备的权限的客户端模块其所需的设备接口不存在或其所需的设备接口当前不可用。进一步,所述步骤C3中所述客户端模块对接收到的通用唯一识别码进行加密,其中,所述客户端模块所采用的加密方法为对称加密算法、非对称加密算法和自定义加密算法中的任一种或几种的组合。本发明解决其技术问题所采用的另一个技术方案是一种基于安卓系统的设备接口的控制系统,包括
初始化单元,用于对硬件抽象层的服务模块进行初始化,从而生成套接字;
调用与连接建立单元,用于调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接;
权限验证单元,用于所述服务模块对客户端模块进行权限验证,从而判则客户端模块是否具备访问设备的权限,若是,转至设备信息获取单元,反之,则结束操作并告知客户端模块其不具备访问设备的权限;
设备信息获取单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。进一步,所述权限验证单元包括:
请求发送子单元,用于所述客户端模块向服务模块发送获取一个通用唯一识别码的请
求;
请求接收处理与返回子单元,用于所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块;
加密子单元,用于所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块;
解密与比较子单元,用于所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。进一步,所述设备信息获取单元包括:
设备信息发送子单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据;
设备接口处理子单元,用于服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作;
设备信息返回子单元,用于服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。本发明的方法的有益效果是:本发明的方法不影响系统框架,无需修改系统固有应用程序编程接口,可保持安卓系统自身的通用性及可移植性;而且本发明的方法控制新的设备时只需修改应用程序层和硬件抽象层,而不需要修改系统的所有层次,大大减低开发难度及复杂度。另外,本发明的方法中的服务模块对客户端模块进行权限验证,能维持安卓系统原有的系统安全性以及对设备的访问权限。同时,本发明的方法通过套接字建立通信连接,能区分来自不同应用程序进程的通信,实现数据传输的并发服务,使通信更加可
靠本发明的系统的有益效果是:本发明的系统不影响系统框架,无需修改系统固有应用程序编程接口,可保持安卓系统自身的通用性及可移植性;而且本发明的系统结构简单,只需用到应用程序层和硬件抽象层,大大减低开发难度及复杂度。另外,本发明的系统中的服务模块对客户端模块进行权限验证,从而维持安卓系统原有的系统安全性以及对设备的访问权限。同时,本发明的系统中客户端模块与服务模块通过套接字进行连接,能区分来自不同应用程序进程的通信,实现数据传输的并发服务,使通信更加可靠。


图1为安卓系统的结构框 图2为本发明一种基于安卓系统的设备接口的控制方法的步骤流程 图3为本发明一种基于安卓系统的设备接口的控制方法的步骤C的具体步骤流程图; 图4为本发明一种基于安卓系统的设备接口的控制方法的步骤D的具体步骤流程图; 图5为本发明一种基于安卓系统的设备接口的控制系统的系统结构框图;图6为本发明一种基于安卓系统的设备接口的控制系统的权限验证单元组成结构框
图7为本发明一种基于安卓系统的设备接口的控制系统的设备信息获取单元组成结构框图。
具体实施例方式下面结合说明书附图对本发明的具体实施方式
作进一步说明。参照图2,本发明一种基于安卓系统的设备接口的控制方法,包括
A、对硬件抽象层的服务模块进行初始化,从而生成套接字;
B、调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接;
C、所述服务模块对客户端模块进行权限验证,从而判断客户端模块是否具备访问设备的权限,若是,则执行步骤D,反之,则结束操作并告知客户端模块其不具备访问设备的权限;
D、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。其中,位于硬件抽象层的服务模块负责直接管理设备接口,而位于应用程序层的客户端模块会在应用程序运行时被调用。套接字用来区分来自不同应用程序进程的通信,从而实现数据传输的并发服务,使通信更加可靠。服务模块对客户端模块进行权限验证的结果有两个一是客户端模块具备访问设备的权限,此时客户端模块向服务模块发送设备接口的操作命令以及相应的数据后,由服务模块控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果;另一个是客户端模块不具备访问设备的权限,此时结束当前操作,并告知客户端模块其不具备访问设备的权限。而通过权限验证的客户端模块即为具备访问设备的权限的客户端模块。此外,设备操作的结果包括客户端模块所需要的设备信息。参照图3,进一步作为优选的实施方式,所述步骤C,其包括
Cl、所述客户端模块向服务模块发送获取一个通用唯一识别码的请求;
C2、所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块;
C3、所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块;
C4、所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。为了保持系统的安全性,防止未授权的应用程序访问服务模块所管理的设备接口,客户端模块向服务模块请求设备的过程中会有一系列操作来验证客户端模块是否具备访问其所请求的设备的权限,而且验证应用程序权限时,客户端模块会通过套接字与服务模块进行通信。权限验证的过程如下
首先客户端模块会发送获取一个UUID(Universally Unique Identifier,通用唯一识别码)的请求给服务模块;
服务模块接收到请求之后,会自动生成一个UUID,并且发送给客户端模块;
客户端模块收到UUID之后,会对其进行加密,然后发送给服务模块;
服务模块收到加密了的UUID之后,会首先对其进行解密。接着,把解密后的UUID跟原始的UUID进行比较,若两者相同,则客户端模块具备访问设备的权限;反之,则客户端模块不具备访问设备的权限。最后服务模块把客户端模块是否具备访问设备的权限的结论返回给客户端模块。参照图4,进一步作为优选的实施方式,所述步骤D,其包括
D1、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据;
D2、服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作;
D3、服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。其中,设备操作的结果为所需设备的信息。安卓系统硬件抽象层的服务模块直接管理设备的接口。客户端模块通过权限验证之后,就会开始通过套接字向服务模块发送对设备接口的操作命令以及相应的数据;服务模块接收到命令后,就会根据收到的操作命令以及数据,对与设备接口对应的设备进行相应的读写、配置等操作;最后服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。例如,当应用层程序需要从设备接口获取一段数据的时候,客户端模块会通过套接字发送“获取命令”、“获取长度”和“获取超时”等信息给服务模块。接着,服务模块根据收取的信息操作与设备接口对应的设备,从设备接口获取信息。而服务模块收到设备接口获取的信息(即设备操作的结果)后,通过套接字返回给通过权限验证的客户端模块。最终通过权限验证的客户端模块从设备接口获取所需获取的数据。进一步作为优选的实施方式,在所述步骤C4之后还设有步骤C5,所述步骤C5,其具体为所述具备访问设备的权限的客户端模块向服务模块发送使用其所需的设备接口的请求,服务模块接收到所述请求后,判断其所需的设备接口是否存在以及其所需的设备接口当前是否被其它客户端模块使用;若其所需的设备接口存在且其所需的设备接口当前未被其它客户端模块使用,则允许所述具备访问设备的权限的客户端模块使用其所需的设备接口 ;反之,则告知所述具备访问设备的权限的客户端模块其所需的设备接口不存在或其所需的设备接口当前不可用。在步骤C4之后添加对客户端模块其所需的设备接口是否存在或其所需的设备接口当前是否可用的判断,更接近实际的情况,进一步提高了权限验证的准确度和完整度。进一步作为优选的实施方式,所述步骤C3中所述客户端模块对接收到的通用唯一识别码进行加密,其中,所述客户端模块所采用的加密方法为对称加密算法、非对称加密算法和自定义加密算法中的任一种或几种的组合。其中,对称加密算法包括AES算法、DES算法、TDES算法;非对称加密算法包括RSA算法、ECC算法;自定义加密算法包括和私密数据异或。对称加密算法能够提供加密和认证却缺乏了签名功能,使得其使用范围有所缩小。而非对称加密算法除了提供加密和认证功能外,还包括签名功能,应用更广泛。本发明的方法优先采用非对称加密算法。参照图5,一种基于安卓系统的设备接口的控制系统,包括
初始化单元,用于对硬件抽象层的服务模块进行初始化,从而生成套接字;
调用与连接建立单元,用于调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接;
权限验证单元,用于所述服务模块对客户端模块进行权限验证,从而判则客户端模块是否具备访问设备的权限,若是,转至设备信息获取单元,反之,则结束操作并告知客户端模块其不具备访问设备的权限;
设备信息获取单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。其中,初始化单元的输出端依次通过调用与连接建立单元、权限验证单元进而与设备信息获取单元的输入端连接。权限验证单元主要通过比较器比较来进行验证。参照图6,进一步作为优选的实施方式,所述权限验证单元包括
请求发送子单元,用于所述客户端模块向服务模块发送获取一个通用唯一识别码的请
求;
请求接收处理与返回子单元,用于所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块;
加密子单元,用于所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块;
解密与比较子单元,用于所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。其中,请求发送子单元的输入端与所述调用与连接建立单元的输出端连接,请求发送子单元的输出端依次通过请求接收处理与返回子单元、加密子单元进而与解密与比较子单元的输入端连接。所述解密与比较子单元的输出端与所述设备信息获取单元的输入端连接。参照图7,进一步作为优选的实施方式,所述设备信息获取单元包括
设备信息发送子单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据;
设备接口处理子单元,用于服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作;
设备信息返回子单元,用于服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。其中,设备信息发送子单元的输入端与所述解密与比较子单元的输出端连接,设备信息发送子单元的输出端通过设备接口处理子单元进而与设备信息返回子单元的输入端连接。
相对现有技术,本发明具体有以下优点
(I)现有的修改系统源码方案会破坏Android (安卓)系统原有架构,会修改系统的API(应用程序编程接口)。其应用程序需与系统配套,系统通用性很低。而本发明不影响系统框架,无需修改系统固有API (应用程序编程接口),可保持Android (安卓)系统自身的通用性及可移植性。(2)现有的修改系统源码方案开发复杂度大,系统每控制一次新的设备都需要修改一次系统所有层次。而本发明则只需修改应用程序层和硬件抽象层,大大减低开发难度及复杂度。(3)现有的JNI (JAVA本地调用)方案只是用一种单纯的应用开发接口绕过了应用框架层。可是应用框架层是用于维护系统自身安全以及设备访问权的,所以此技术会使系统的安全性锐减。而本发明包括一个服务模块,服务模块中包含权限验证机制,可维持Android (安卓)系统原有的系统安全性以及对设备的访问权限。以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
权利要求
1.一种基于安卓系统的设备接口的控制方法,其特征在于包括: A、对硬件抽象层的服务模块进行初始化,从而生成套接字; B、调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接; C、所述服务模块对客户端模块进行权限验证,从而判断客户端模块是否具备访问设备的权限,若是,则执行步骤D,反之,则结束操作并告知客户端模块其不具备访问设备的权限; D、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。
2.根据权利要求1所述的一种基于安卓系统的设备接口的控制方法,其特征在于:所述步骤C,其包括: Cl、所述客户端模块向服务模块发送获取一个通用唯一识别码的请求; C2、所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块; C3、所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块; C4、所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的 权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。
3.根据权利要求2所述的一种基于安卓系统的设备接口的控制方法,其特征在于:所述步骤D,其包括: D1、通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据; D2、服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作; D3、服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。
4.根据权利要求2所述的一种基于安卓系统的设备接口的控制方法,其特征在于:在所述步骤C4之后还设有步骤C5,所述步骤C5,其具体为:所述具备访问设备的权限的客户端模块向服务模块发送使用其所需的设备接口的请求,服务模块接收到所述请求后,判断其所需的设备接口是否存在以及其所需的设备接口当前是否被其它客户端模块使用;若其所需的设备接口存在且其所需的设备接口当前未被其它客户端模块使用,则允许所述具备访问设备的权限的客户端模块使用其所需的设备接口 ;反之,则告知所述具备访问设备的权限的客户端模块其所需的设备接口不存在或其所需的设备接口当前不可用。
5.根据权利要求4所述的一种基于安卓系统的设备接口的控制方法,其特征在于:所述步骤C3中所述客户端模块对接收到的通用唯一识别码进行加密,其中,所述客户端模块所采用的加密方法为对称加密算法、非对称加密算法和自定义加密算法中的任一种或几种的组合。
6.一种基于安卓系统的设备接口的控制系统,其特征在于包括: 初始化单元,用于对硬件抽象层的服务模块进行初始化,从而生成套接字; 调用与连接建立单元,用于调用应用程序层的客户端模块后,所述客户端模块通过所述套接字与所述服务模块建立通信连接; 权限验证单元,用于所述服务模块对客户端模块进行权限验证,从而判则客户端模块是否具备访问设备的权限,若是,转至设备信息获取单元,反之,则结束操作并告知客户端模块其不具备访问设备的权限; 设备信息获取单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。
7.根据权利要求6所述的一种基于安卓系统的设备接口的控制系统,其特征在于:所述权限验证单元包括: 请求发送子单元,用于所述客户端模块向服务模块发送获取一个通用唯一识别码的请求; 请求接收处理与返回子单元,用于所述服务模块接收到请求后自动生成一个通用唯一识别码,并将该通用唯一识别码返回给客户端模块; 加密子单元,用于所述客户端模块对接收到的通用唯一识别码进行加密,并将加密后的通用唯一识别码给发送给服务模块; 解密与比较子单元,用于所述服务模块对加密后的通用唯一识别码进行解密,并将解密后的通用唯一识别码与原始的通用唯一识别码进行比较,从而根据二者的比较结果是否相同来判断客户端模块是否具备访问设备的权限,若相同,则客户端模块具备访问设备的权限,反之,则客户端模块不具备访问设备的权限。
8.根据权利要求7所述的一种基于安卓系统的设备接口的控制系统,其特征在于:所述设备信息获取单元包括: 设备信息发送子单元,用于通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据; 设备接口处理子单元,用于服务模块根据收到的操作命令以及相应的数据,对与设备接口对应的设备进行相应的读写和配置操作; 设备信息返回子单元,用 于服务模块把设备操作的结果通过套接字返回给通过权限验证的客户端模块。
全文摘要
本发明公开了一种基于安卓系统的设备接口的控制方法及系统,本发明的方法包括对硬件抽象层的服务模块进行初始化,从而生成套接字;调用应用程序层的客户端模块后,通过所述套接字与所述服务模块建立通信连接;对客户端模块进行权限验证,从而判断客户端模块是否具备访问设备的权限,若是,则执行下一步骤,反之,则结束操作并告知客户端模块其不具备访问设备的权限;通过权限验证的客户端模块通过套接字向服务模块发送设备接口的操作命令以及相应的数据后,服务模块通过设备接口控制与设备接口对应的设备进行操作,并由服务模块向通过权限验证的客户端模块返回设备操作的结果。本发明能保持安卓系统的通用性和安全性,可广泛应用于通信领域。
文档编号G06F13/10GK103077018SQ20121057953
公开日2013年5月1日 申请日期2012年12月27日 优先权日2012年12月27日
发明者梁红波, 区英杰, 林志广 申请人:广州英码信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1