关键词:android 4.0 USB OTG 键盘 鼠标 device u盘
平台信息:
内核:linux3.0
系统:android4.0.3
平台:S5PV310(samsung exynos 4210)
把这一段时间的工作内容记录下
一、OTG的概念
OTG是On-The-Go的缩写,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。
简单的说,一个OGT口可以做主设备HOST、从设备device。
二、三星平台的伪“OTG”
说到三星平台的OTG,有点坑人,看下面的电路图,芯片是支持USB OTG2.0 和USB HOST2.0的,可是不知道是他们芯片没做好,还是三星给的 BSP不全,反正OTG这个功能不能用。
芯片和软件上都不支持,我们要从硬件上解决了。加入一个IC,通过xuotgid 来判断是那主设备还是从设备,如果是主设备,如平板外接键盘、鼠标,则接USBHOST2.0;如里是从设备,如平板电脑做u盘用,接到这个坑人的USB OTG2.0
三、关于android对键盘、鼠标的支持
Linux本身就支持键盘、鼠标,linux 内核的驱动是完好的,我们只要配置好就可以了,以前的android版本我不太清楚,android4.0是支持键盘、鼠标的。
1、鼠标
device Drivers --->
Inputdevice support --->
<*>Mouse interface
2、键盘
deviceDrivers --->
Input device support --->
[*]Keyboards --->
选择AT keyboard
3、USB中的选项
如下图所示
Device Drivers --->
[*] USB support --->
<*> OHCI HCD support
[*] S5P OHCI support
完成上面配置后,插入u盘、鼠标、键盘、u盘都可能用
如下插入u盘的信息:
插入U盘
[ 138.620396] usb 1-1: new high speed USB device number 4 using s5p-ehci
[ 138.761467] scsi2 : usb-storage 1-1:1.0
[ 139.788733] scsi 2:0:0:0: Direct-Access Netac OnlyDisk PMAP PQ: 0 ANSI: 0 CCS
[ 139.808739] sd 2:0:0:0: Attached scsi generic sg0 type 0
[ 140.228950] sd 2:0:0:0: [sda] 7831552 512-byte logical blocks: (4.00 GB/3.73 GiB)
[ 140.234174] sd 2:0:0:0: [sda] Write Protect is off
│
拔出 u 盘
[ 744.728526] usb 1-1: USB disconnect, device number 5
[ 745.765254] FAT-fs (sda1): Directory bread(block 15304) failed
[ 745.765450] FAT-fs (sda1): Directory bread(block 15305) failed
[ 745.780105] FAT-fs (sda1): Directory bread(block 15306) failed
[ 745.780309] FAT-fs (sda1): Directory bread(block 15307) failed
[ 745.786486] FAT-fs (sda1): Directory bread(block 15308) failed
[ 745.795189] FAT-fs (sda1): Directory bread(block 15309) failed
[ 745.808332] FAT-fs (sda1): Directory bread(block 15310) failed
[ 745.808526] FAT-fs (sda1): Directory bread(block 15311) failed
[ 745.814463] FAT-fs (sda1): Directory bread(block 15304) failed
[ 745.820176] FAT-fs (sda1): Directory bread(block 15305) failed
[ 745.825991] FAT-fs (sda1): Directory bread(block 15306) failed
[ 745.831829] FAT-fs (sda1): Directory bread(block 15307) failed
[ 745.837628] FAT-fs (sda1): Directory bread(block 15308) failed
[ 745.843420] FAT-fs (sda1): Directory bread(block 15309) failed
[ 745.849224] FAT-fs (sda1): Directory bread(block 15310) failed
[ 745.855036] FAT-fs (sda1): Directory bread(block 15311) failed
这里可以看到usb的用户为system
shell@android:/mnt $ ls -l
drwxr-xr-x root system 2000-01-01 04:15 asec
d--------- system system 2000-01-01 04:15 ext_sd
drwxr-xr-x root system 2000-01-01 04:15 obb
drwxrwxr-x root sdcard_rw 2000-01-01 03:08 sdcard
drwx------ root root 2000-01-01 04:15 secure
d---rwxr-x system sdcard_rw 1970-01-01 00:00 usb
分享到:
相关推荐
Android下的OTG读写串口设备开发demo,实现串口的读写接口编写。
安卓 Android OTG USB 串口通信,支持Cp2102、FT232R, CDC/ACM,使用Android USB Host API ,Android 3.1+,无需root
平板和手机通讯聊天,其中USB通讯是需要用户手动赋予权限的,所以2个手机都会有提示的. 到此基本上就完了,我写的这2个app运行在2个安卓手机上,通过数据线是可以进行聊天的.
安卓 Android OTG USB 串口通信,支持Cp2102、FT232R, CDC/ACM,使用Android USB Host API ,Android 3.1+,无需root,供学习使用
使用时 广播注册 和meta-data的注册 必须在Acticvity节点下,功能:扫描串口信息 读写串口数据 不需要使用 root权限
android,otg开发,支持U盘,相机U盘读取,自带工具类,可进行二次开发
安卓OTG编程的一个小demo,适合准备进行安卓OTG开发的初学者
Android设备的OTG开发工具,用于实现Android与单片机的串口通讯。
在Android开发中,如何检测USB(OTG)线状态
安卓设备利用OTG控制STM32单片机,安卓端检测usb设备类型
android手机使用otg功能调试usb串口的demo程序,4.4系统亲测可用,程序前提是手机支持OTG功能
解决部分Android设备 支持OTG 无法发现设备USB设备 里面含有说明文档及相关的资源 可以下载看看
介绍了MTK OTG 配置方法,很详细,按照配置来配肯定可以
也可以自行下载编译。 https://github.com/quantum6/Android-USB-OTG-Camera
Android M 读取OTG U盘路径和sdcard路径demo , 第三方apk可以参考使用。摘要为什么要50个字,为什么呢?
通过 usb-OTG 实现两台android设备之间的通信的dome。
Android实现串口通讯所需源码,jar包,说明文档以及apk文件
Android Usb OTG源码,可以对USB OTG设备进行数据读写,经过验证。
简单的USB-OTG 连接以及数据接收Demo,食用方法:http://blog.csdn.net/nhh0905/article/details/72304460