ech*_*ney 5 usb android host mode
我目前正在开发一个需要在Android中使用Usb主机模式的项目(使用4.2.2).我需要能够执行标准文件操作,如列出文件和从USB驱动器读取.使用主机模式文档我已经到了能够检测到驱动器已连接的程度,是USB大容量存储,并找到各种端点.
我被卡住的地方就是在那之后要做什么.我想我并不真正了解控制和批量转移之间的区别,或者在控制转移的情况下,实际上甚至发生了什么.不幸的是,我对USB本身的了解有限,我听说文档相当令人生畏.
任何人都可以帮助指导我,或指出我的工作示例,我需要做什么来基本上"装载"USB驱动器?正如我之前所说,我只需要列出文件并读取它们的文件操作,而不是写入.我还要提到目标手机是三星的Galaxy Nexus.
谢谢
控制端点(通常)用于向 USB 设备发送命令。
批量端点(通常)用于将数据传输到 USB 设备。
批量数据的结构没有定义。
但在控制传输中定义了数据结构。
主机发送一个 8 字节数据包,其中包含有关命令的信息(如请求 ID、命令参数、数据阶段传输的数据长度等)。然后可选地接收/发送一些数据,最后主机/设备通过进入状态阶段就命令成功达成一致。就是这样!
但是,魔鬼在于细节,请参阅 USB 规范。:)
所有 USB 存储器(U 盘、存储卡、硬盘)均适用于 USB 大容量存储类别。
使用大容量存储类,您可以执行内存读写,但其上的文件系统(例如:EXT3、FAT...)需要另一个驱动程序。
所以,本质上是读/写文件。您需要连接到设备:
要编写大容量存储类驱动程序,您必须阅读 USB 大容量存储类规范 http://www.usb.org/developers/docs/devclass_docs/并且您可能只在寻找Bulk
然后,参考您的设计和规范所针对的文件系统。(如果可供使用的话)
AFAIK,Android 有连接到 USB 的文件系统安装工具,所以你可能是在重新发明轮子。
额外注意:
某些文件系统没有公开记录(尽管反向工程信息可能存在)(例如:NTFS)
,并且某些文件系统(部分)已获得专利。(例如:FAT)
归档时间: |
|
查看次数: |
1976 次 |
最近记录: |