[发明专利]一种实现android移动设备与USBOTG主机通讯的方法有效
| 申请号: | 201510016220.8 | 申请日: | 2015-01-13 |
| 公开(公告)号: | CN104572564B | 公开(公告)日: | 2018-04-20 |
| 发明(设计)人: | 胡永刚;沈勇坚;王翔平 | 申请(专利权)人: | 上海动联信息技术股份有限公司 |
| 主分类号: | G06F13/42 | 分类号: | G06F13/42 |
| 代理公司: | 上海天翔知识产权代理有限公司31224 | 代理人: | 刘常宝 |
| 地址: | 201203 上海市浦东新区*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 android 移动 设备 usbotg 主机 通讯 方法 | ||
技术领域
本发明涉及移动设备通讯技术,具体涉及android移动设备与USB OTG主机通讯的技术。
背景技术
由于移动市场的兴起,现在人们对手机的使用性和安全性需求正在变得越来越多样,一些专业的外部设备不仅可以利用手机的便携性提升其使用空间,更可以满足用户的安全性需要,其手机外设的市场前景十分广阔。随着手机的不断升级进步,外设与手机已经可以不需要通过pc来进行连接,而是可以直接进行有线和无线的连接,来实现通讯的目的。
android手机目前已经有支持作为OTG主设备的手机出现,但是从演化来看,以前的大部分手机受到电源的限制,还是只能支持手机作为OTG从设备,
在确定USB方案后,不难发现安卓的USB方案现存两种:
一,通过android系统的Android Debug Bridge调试接口,使用其ADB daemon的tcp forward功能,可以实现基于tcp socket的主从设备通信。
ADB方案的好处有:
1,ADB damon程序原生与安卓系统中,因此从理论上说。只要是安卓系统,均存在ADB程序,只要用户打开了调试接口,即可启动ADB daemon进程,此时外设即可通过tcp socket与之建立通讯。
2,ADB于上层app之间也是通过tcp通讯,通讯相对比较简单。
但是ADB方案对于比较老版本(4.0以下)的支持比较好,对于4.2.2以上版本,无法稳定可靠的支持。为此安卓推出了secure adb来对主设备进行RSA签名,由于生成RSA秘钥对及进行RSA加密对硬件的性能要求显著,因此对于外设不易实现。
二、通过android 3.1版本提供的Android Open Accessory Protocol协议进行连接。AOA协议是android在3.1版本上引入的新的外设协议,3.1以上版本内置jar包支持此协议,对于2.3.6-3.0版本,可以提供add-on lib进行支持。
使用AOA方案的好处有:
1,AOA原生支持android3.1以上版本;
2,application API层提供usb.accessory API套件,编写app来管理标准外设变得非常容易;
3,可以对app进行xml-filter设置,当android系统检测到有AOA外设接入后,会自动搜索已经安装的app,如果匹配成功,可自动启动app;如果没有找到匹配,可以打开外设设置的URL,引导用户去网站下载相应的app。
由上可知,现有的ADB方案和AOA方案都只能够兼容相应版本的android系统移动设备,无法实现对所有android移动设备的支持。
发明内容
针对现有android移动设备与USB OTG主机之间通讯所存在的问题,本发明的目的在于提供一种能够兼容所有android移动设备的USB OTG主机通讯方案。
为了达到上述目的,本发明采用如下的技术方案:
一种实现android移动设备与USB OTG主机通讯的方法,所述方法在固件程序中合并Android Open Accessory Protocol协议和Android Debug Bridge接口协议,并在固件程序中智能判断手机支持的OTG连接方式,根据判断结果选择对应的协议进行连接。
在本方案的优选方案中,所述方法中在应用程序根据Android Open Accessory Protocol协议和Android Debug Bridge接口协议内置形成支持两种连接协议的连接方式。
进一步的,所述固件程序连接USB OTG主机的过程如下:
(1)设备接入后,固件程序发起USB连接,枚举USB描述符;
(2)完成USB枚举后,发起AOA协议连接,尝试打开accessory mode模式,如果打开失败,延长reset时间,并重复尝试;
(3)在所有尝试失败以后,reset设备,然后通过ADB协议发起ADB连接,指导连接成功。
进一步的,所述应用程序连接USB OTG主机的过程如下:
(11)应用程序启动后,首先通过usb.usbmanager获取AOA协议的accessory类列表,如果手机固件程序能支持AOA协议,则此List表,即accessory类列表,中包含有效的设备ID,可以直接通过ID进行通信;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海动联信息技术股份有限公司,未经上海动联信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510016220.8/2.html,转载请声明来源钻瓜专利网。





