读取/写入USB主机Android

时间:2016-12-19 15:12:45

标签: java android usb host

我尝试了一周在android上运行usb主机。我试着用这两个解决方案:

我尝试了很多可能性,但是当我尝试写入时,应用程序会返回错误,或者它会锁定"当我试着阅读......

我的最后一次尝试:

 UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

    ProbeTable customTable = new ProbeTable();
    customTable.addProduct(0x15A2, 0x300, CdcAcmSerialDriver.class);    //0x15A2  0x300

    UsbSerialProber prober = new UsbSerialProber(customTable);
    List<UsbSerialDriver> availableDrivers = prober.findAllDrivers(manager);

    if (availableDrivers.isEmpty()) {
        Toast.makeText(MainActivity.this,"No device detected", Toast.LENGTH_SHORT).show();
        return;
    }

    // Open a connection to the first available driver.
    UsbSerialDriver driver = availableDrivers.get(0);
    UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
    if (connection == null) {
        return;
    }

    // Read some data! Most have just one port (port 0).
    UsbSerialPort port = driver.getPorts().get(0);
    try {

        port.open(connection);
        port.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);

        final TextView textViewToChange = (TextView) findViewById(R.id.textView);
        textViewToChange.setText("port open and parameters up");

        byte buffer[] = new byte[32];

        byte bufferwrite[] = new byte[1];
        buffer[0] = 1;

        int numBytesRead = port.write(bufferwrite, 1000);

        final TextView textViewToChange2 = (TextView) findViewById(R.id.textView2);
        textViewToChange2.setText("port read/write : "+numBytesRead);

    } catch (IOException e) {

        final TextView textViewToChange2 = (TextView) findViewById(R.id.textView2);
        textViewToChange2.setText("error : "+e);

    } finally {
        try {
            port.close();

            final TextView textViewToChange4 = (TextView) findViewById(R.id.textView4);
            textViewToChange4.setText("Port close");

        } catch (IOException e) {
            e.printStackTrace();
            final TextView textViewToChange4 = (TextView) findViewById(R.id.textView4);
            textViewToChange4.setText("Error close port : "+e);
        }
    }

此行始终返回错误:

int numBytesRead = port.write(bufferwrite, 1000);

我无法解决它。 在此先感谢您的帮助。

0 个答案:

没有答案