Android USB Host API - 如何查找USB(Prolific)通信的驱动程序

时间:2013-08-08 01:28:19

标签: android usb android-host-api

更新2:

我已经通过缩短其IN和OUT引脚来测试FTDI芯片。 controlTransfer()始终返回0,bulkTransfer() - Write返回已发送数据的长度,bulkTransfer() - Read返回发送的任何数据。

有人知道如何或在哪里找到Prolific的驱动程序?



更新1:

我用Slick USB 2进行了一些测试,我想我已经找到了问题。看起来我错过了一些驱动程序,因为通信无法正常工作。

我将我的主板连接到Slick USB 2然后尝试使用我的应用程序进行连接,并打印出“打开设备并声明: false ,file = 45,test = null”。我再次尝试,通讯开始工作。我能够按预期编写和读取数据。此外,当我重新连接电缆时,通信停止工作。

我想,Slick USB 2正在安装一些通信所需的驱动程序。

有谁知道我在哪里或如何找到这个驱动程序?



我希望我的Android设备(Galaxy Tab 2.0 7“,版本4.0.3)与自定义主板通信。为此,我使用的是OTG数据线+ USB转串口转换器(Prolific)。

我已经测试了与Slick USB 2应用程序的通信,一切都按预期工作。

现在,我正在尝试使用USB Host API创建自己的应用。我添加了intent-filter,当我连接我的主板时,它也得到了认可。我使用以下代码:

UsbDevice usbDevice;    // contains device from intent-filter
Context context;        // activity object

UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
Toast.makeText(context, "usb device perm: " + manager.hasPermission(usbDevice), Toast.LENGTH_LONG).show();

UsbInterface interfaceUsb = usbDevice.getInterface(0);

UsbDeviceConnection connection = manager.openDevice(usbDevice);
boolean resClaim = connection.claimInterface(interfaceUsb, true);
Toast.makeText(context, "open device and claim: " + resClaim + ", file = " + connection.getFileDescriptor() + ", test = " + connection.getSerial(), Toast.LENGTH_LONG).show();
// Prints "open device and claim: true, file = 45, test = null"

int result = connection.controlTransfer(0x40, 0x03, 0x0034, 0, null, 0, 0); //  set baudrate 57600

Toast.makeText(context, "result: " + result, Toast.LENGTH_LONG).show();     // returns -1

int resultWrite = connection.bulkTransfer(endpointUsbWrite, new byte[]{'a'}, 1, 1000);
byte[] bytesRead = new byte[64];
int resultRead = connection.bulkTransfer(endpointUsbRead, bytesRead, bytesRead.length, 1000);
// resultWrite returns 1, resultRead returns -1

controlTransfer()始终返回-1。我还尝试了bulkTransfer() - write并返回发送数据的长度,但是电路板没有收到任何数据。 bulkTransfer() - read返回-1

我做了一个测试,我把我的电路板连接到我的应用程序并尝试连接Slick USB 2应用程序和Slick USB 2能够连接到我的电路板 - 这真的不应该工作。我想,我无法正常打开设备。

我在这里缺少什么?我已检查过多个线程,但无法解决问题。有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

Prolific为PL2303开发了Android SDK。 您可以下载并试用: https://play.google.com/store/apps/details?id=tw.com.prolific.app.pl2303terminal

你也可以从Prolifics官方网站获得支持..

相关问题