通过Android 3.1上的USB端口读取和写入数据

我正在尝试编写一个Android应用程序,用于从Android平板电脑读取和写入数据到我们的嵌入式设备。 平板电脑和嵌入式设备通过USB连接到串行转换器。 是否可以将嵌入式设备中的数据读入我们的Android平板电脑? 我可以看看的任何示例代码?

由于串口转换器是USB 设备 ,Android平板电脑必须充当USB 主机 。 此function自Android 3.1起可用。 API 开发人员页面上提供了API文档,其中包含代码示例。

要与转换器实际通信,您必须了解更多关于它的内部结构:市场上有许多不同的设备,一些使用USB HID,另一些使用USB CDC设备类或甚至不遵守任何类。 linux lsusb命令可能有助于获取设备/接口描述符。

在典型的CDC设备上,您必须与两个批量端点进行交互,并且可能使用一些与接口相关的请求来设置波特率等。请参阅USB实施者论坛上的通信设备类规范。

如果您的设备只有一个IN和一个OUT批量端点(在控制端点旁边),您可能会尝试使用OUT端点上的UsbDeviceConnection.bulkTransfer()方法将一些字节写入串行线路。 这很有可能只是工作,但是对于干净的实现,你应该坚持类规范。

我建议使用移植的usb-for-android lib,它已经实现了PL2303驱动程序: https : //code.google.com/r/felixhaedicke-usb-serial-for-android

我成功地使用了它。