最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【整理】关于安卓(Android)手机是否支持USB主机(USB Host)功能

Android crifan 16526浏览 0评论

背景

想要用手机,通过USB接口去连接一个外设。

后来记得了,其实USB技术中,是分Host和Device的,且功能是固定的。

除非有OTG的硬件,则可以通过软件(驱动)去配置,可以支持作为Host,或者Device。

所以,如果安卓手机支持USB  Host,那么可以确定其手机的USB模块是OTG的。

关于安卓(Android)手机是否支持USB主机(USB Host)功能

参考了一些资料:

1.之前这位:

关于android USB Host编程的一些总结

解释的也还是有点混乱的。

2.这里也解释了:

Determine Your Phone’s USB Host Capabilities With USB Host Diagnostics

3.官网的解释更清楚:

USB Host and Accessory

 

总结安卓Android手机能够使用USB Host的必备条件

参考之前别人的解释,和后来看到的官网的解释,总结如下:

Android中,USB方面,分两种模式:

  • USB accessory== USB Device == Android手机作为一个Device设备
    • 把手机连到电脑上,电脑就是Host,手机就是Device,手机就是类似于U盘,可以从主机电脑中操作U盘,拷贝U盘资料了
    • 此种模式,可以说所有手机都支持,就像都可以当做一个U盘接到电脑上一样
  • USB host == Android手机作为一个Host主机
    • Android手机就是主控制器,可以外接/外挂,USB鼠标,USB键盘,U盘,USB摄像头,游戏手柄等被控制的设备
    • 此种USB Host模式,需要软硬件都支持才能工作:
      • 硬件:确保手机本身的USB模块是OTG的,即USB的硬件是那种,既可以被配置为Device的,也可以被配置为Host的
        • 与此相对应的是,有些USB的硬件模块,是固定的USB Device,或者是USB Host
          • 比如普通的U盘中的USB模块,就是固定的USB Device
          • 比如你把U盘接到电脑上的那个USB接口,就是主板上的USB Host的接口,可以挂载你的U盘
        • 与此类似的是,有些数码相机,就是USB OTG的
          • 即可以当做U盘接到电脑上,电脑上就可以把相机里面照片拷贝出来了
          • 也可以当做USB 主机,连接USB的打印机,把照片传输到打印机上,打印出来
      • 软件
        • Android系统,必须是Android 3.1(API Level 12)
        • 本身手机常见给你预装的Android系统,本身是有对应的USB(OTG)的驱动

 

结论

所以,换句话说:

1.如果只是手机的USB硬件是OTG,支持USB Host

但是手机中android系统是低于3.1版本,或者里面没有对应的USB驱动的

则都无法使用USB Host功能,都无法外接USB 键盘之类的USB设备。

2。本身手机的USB硬件就不是OTG的,就不支持USB Host

即使你手机中Android版本再高,比如是4.1,那也是白搭,也没法用USB Host的。

3.只有当你的手机本身的USB硬件是OTG的,且Android系统是3.1版本之上的,且系统的固件(ROM镜像)里面是有对应的驱动的,才能真正使用上USB Host。

 

举例:

此处,我的手机就是Samsung的I9100G,

根据:

[经验] I9100 Galaxy S II USB Host(OTG)功能测试,多图高清

就可以确定,至少,I9100的硬件,肯定是OTG的了。

只不过我当前手机上的Android系统是2.3.6的,低于3.1,所以也是没法用USB Host的,没法外挂USB设备的。

 

如何确定我的手机是否支持USB Host

同样的参考之前的解释,可知,有些手机声称支持USB Host,结果实际不支持,或者使用有问题。

而对于一款安卓手机是否支持USB Host,就有人弄出了:

检测安卓手机设备是否支持USB Host诊断工具

提供了相关工具下载:

USB Host Diagnostics v1.2

以及,对应的有人专门总结了,目前N多款手机,声称是否支持,和实际上是否支持等信息:

http://usbhost.chainfire.eu/

里面,应该可以找到你的手机。

需要的可以去看看。

 

总结

USB Host,一般人,用不到。

需要用到的人,是需要一些背景知识,才能大概搞懂是怎么回事。

以及如何使用的。

 

提示:

关于USB Host的开发,有空可以参考:

Android USB Host + Arduino: How to communicate without rooting your Android Tablet or Phone

转载请注明:在路上 » 【整理】关于安卓(Android)手机是否支持USB主机(USB Host)功能

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. xda那里有人用nook2(系统是2.1)装上了外接usb声卡。
    willx10年前 (2014-04-19)回复
86 queries in 0.181 seconds, using 22.12MB memory