您的位置:首页 > 移动开发 > Android开发

关于安卓(Android)手机,安卓(Android)平板电脑,是否支持USB主机(USB Host)功能

2014-11-20 15:58 597 查看
背景

1:公司开发一个项目要读取U盘数据。

2:首先搞清楚,什么样的android设备才能读取U盘。

3:能读取U盘数据的android设备必须支持usb host(即android设备为主机)也就是俗话说的otg功能。


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

官网的解释更清楚:

USB Host and Accessory

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

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)的驱动

4:经项目结束后得到的经验可知,电视盒子(例如小米,百度,开博尔),智能电视肯定都支持。
手机价格在2000元以上的绝大部分都支持(因为这些手机不会节约成本把那个芯片去掉)。平板电脑(三星,小米可以。)

5:安卓(Android)支持otg功能设备列表图



6:既然是搞开发的,先提供一段android代码用来测试,该设备是否支持otg

a,运行该程序到手机

b,关闭程序,插上U盘,打开程序,看Toast中的vid是否为空,不为空则支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: