本发明涉及计算机技术领域,特别涉及一种安卓系统usb-hid设备自适应方法及装置。
背景技术:
“驱动程序”,是一种可以使计算机操作系统和设备通信的特殊程序,操作系统只有通过这个接口,才能控制硬件设备的工作,假如设备的驱动程序未能正确安装,便不能正常工作。
hid是一种用于和计算机进行交互通信的接口,典型的hid设备有鼠标、键盘和触摸屏等,只要符合hid类别设备规范的设备都可以认为是hid设备。hid设备是usb协议中最早提出并支持的一种设备类,并为之专门提供了接口描述。
由于操作系统所面对的硬件设备种类多种多样,不同型号不同厂家的设备又都有各自的特点,要支持某种设备就必须提供这种设备的驱动程序,然后把它加载进内核,才能使用该设备。
安卓系统接入usb-hid设备时,通常需要安装设备的驱动程序或者更新可以兼容该设备的安卓系统版本才能实现设备的正常实用,具有一定的使用难度。
技术实现要素:
为了解决上述技术问题,本发明的目的是提供一种无需安装设备驱动或更新安卓操作系统就可以正常使用usb-hid设备的方法:
本发明所采用的技术方案是:
一种安卓系统usb-hid设备自适应方法,包含usb-hid驱动框架,
s1:当usb-hid设备连接至安卓系统中时进入设备信息读写程序;
s2:判断所述usb-hid设备的驱动程序是否存在;
s3:当所述安卓系统监测所述usb-hid设备的驱动程序存在时,进入s5;
s4:当所述安卓系统监测所述usb-hid设备的驱动程序不存在时,重新启动所述安卓系统,进入usb-hid驱动生成程序;
s5:加载所述usb-hid设备的驱动程序。
其中,设备信息读写程序包括:
监测是否有usb-hid设备连接到所述安卓系统;
当监测到有usb-hid设备连接到所述安卓系统时,读取所述安卓系统内的sys文件,从所述sys文件中提取所述usb-hid设备的厂商id信息,并将所述usb-hid设备的厂商id信息写入flashrom中。
其中,usb-hid驱动生成程序包括:将所述usb-hid设备的厂商id信息添加到所述usb-hid驱动生成程序中,并调用所述usb-hid驱动框架,形成设备驱动。
usb-hid驱动生成程序还包括:将所述非易失随机访问存储器中存储的所述usb-hid设备的厂商id信息添加到所述安卓系统中所支持的usb-hid设备列表中。
本发明还包括:一种安卓系统usb-hid设备自适应装置,包括usb-hid驱动框架,包括:
设备信息读写单元,用于读取连接至所述安卓系统的usb-hid设备的厂商id信息;
usb-hid驱动生成单元,用于生成连接至所述安卓系统的所述usb-hid设备的驱动程序。
其中,设备信息读写单元用于:
监测是否有usb-hid设备连接到所述安卓系统;
当监测到有usb-hid设备连接到所述安卓系统时,读取所述安卓系统内的sys文件,从所述sys文件中提取所述usb-hid设备的厂商id信息,并将所述usb-hid设备的厂商id信息写入非易失随机访问存储器中。
其中,usb-hid驱动生成单元用于:
将所述usb-hid设备的厂商id信息添加到所述usb-hid驱动生成程序中,并调用所述usb-hid驱动框架,形成设备驱动。
usb-hid驱动生成单元还用于:
将所述非易失随机访问存储器中存储的所述usb-hid设备的厂商id信息添加到所述安卓系统中所支持的usb-hid设备列表中。
本发明的有益效果是:仅通过重启安卓设备,就可以自动的实现usb-hid设备驱动程序的加载,避免了重新安装驱动程序或者重新更新可以兼容该设备的安卓系统版本,使用方便,具有较高的经济效益。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是一种安卓系统usb-hid设备自适应方法的一具体实施例的工作流程图;
图2是一种安卓系统usb-hid设备自适应方法的一具体实施例中的设备信息读取程序的工作流程图;
图3是一种安卓系统usb-hid设备自适应方法的一具体实施例中usb-hid驱动生成程序的工作流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
安卓系统中,提供了usb-hid驱动框架,可以实现对usb协议的设备的底层支持,系统在连接usb-hid设备时,在驱动层添加usb-hid设备的设备信息并调用安卓系统中usb-hid驱动框架就可以实现对usb-hid设备的驱动。
本发明就是在usb-hid设备和usb-hid驱动框架之间提供了一个接口,具有设备监测、设备配置、设备加载和设备注册的功能。
本发明的工作流程如图1所示:
当usb-hid设备插入安卓系统设备中时,触发设备信息读取程序信息读取程序,并监测设备驱动程序是否存在,若驱动程序存在,则加载驱动程序,使用该设备;
若驱动不存在,则重启设备,当设备重启时,安卓系统自动进入usb-hid驱动程序,usb-hid驱动程序运行完成后,usb-hid设备可正常使用。
设备信息读取程序工作流程如图2所示,建立一个进程程序监测usb-hid设备是否插入,当usb-hid设备插入时,打开安卓系统sys文件,提取出厂商id信息,并将厂商信息存储在非易失随机访问存储器(flashrom)中,存储在structtag变量指向的地址中,供boot程序和内核使用。
usb-hid驱动生成程序的工作流程如图3所示,安卓系统重启后,进入boot程序,boot程序通过structtag变量,将设备信息传递到内核,内核在加载usb-hid驱动框架时,读取structtag变量,通过设备驱动生成程序组成符合usb-hid协议的驱动。
usb-hid设备驱动生成程序按照usb-hid协议的使用规范的要求编写,与设备的厂家信息组合就可以与usb-hid驱动框架组合成设备驱动调用usb-hid设备。
usb-hid驱动生成程序包括将非易失随机访问存储器中存储的所述usb-hid设备的厂商id信息添加到所述安卓系统中所支持的usb-hid设备列表中,下次相同设备连接到系统时可以直接使用。
本发明还包括:一种安卓系统usb-hid设备自适应装置,包括usb-hid驱动框架,包括:
设备信息读写单元,用于读取连接至所述安卓系统的usb-hid设备的厂商id信息;
usb-hid驱动生成单元,用于生成连接至所述安卓系统的所述usb-hid设备的驱动程序。
其中,设备信息读写单元用于:
监测是否有usb-hid设备连接到所述安卓系统;
当监测到有usb-hid设备连接到所述安卓系统时,读取所述安卓系统内的sys文件,从所述sys文件中提取所述usb-hid设备的厂商id信息,并将所述usb-hid设备的厂商id信息写入非易失随机访问存储器中。
其中,usb-hid驱动生成单元用于:
将所述usb-hid设备的厂商id信息添加到所述usb-hid驱动生成程序中,并调用所述usb-hid驱动框架,形成设备驱动。
usb-hid驱动生成单元还用于:
将所述非易失随机访问存储器中存储的所述usb-hid设备的厂商id信息添加到所述安卓系统中所支持的usb-hid设备列表中。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。