Передача файлов USB Mass Storage OTG

У меня есть внешнее запоминающее устройство, подключенное к устройству Android. В корневом каталоге есть несколько файлов .BIN, которые мне нужно прочитать в моем приложении. Я могу подключиться к устройству и получить разрешение USB, используя UsbDeviceConnection.

private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
    String output = outputTV.getText().toString();
    String action = intent.getAction();
    outputTV.setText(outputTV.getText() + "\n" + " ACTION: " + action);

    if (ACTION_USB_PERMISSION.equals(action)) {
        synchronized (this) {
            UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);

            if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
                if (device != null) {
                    if (device.getInterfaceCount() > 0) {
                        usbIntf = device.getInterface(0);
                        usbEndIn = usbIntf.getEndpoint(0);
                        usbEndOut = usbIntf.getEndpoint(1);

                        usbConnection = mUsbManager.openDevice(device);
                        usbConnection.claimInterface(usbIntf, true);

                        byte[] buffer = new byte[usbEndIn.getMaxPacketSize()];
                        StringBuilder str = new StringBuilder();
                        int retVal = usbConnection.bulkTransfer(usbEndIn, buffer, usbEndIn.getMaxPacketSize(), 2000);

                        for (int i = 2; i < buffer.length; i++) {
                            if (buffer[i] != 0) {
                                str.append((char) buffer[i]);
                            }}}}}}}}};

После подключения я вижу, что у меня есть один интерфейс Mass Storage с двумя конечными точками массовой передачи (один вход, другой выход).

При использовании usbConnection.bulkTransfer я получаю -1 назад и пустой буфер. Итак, у меня проблемы с получением данных. Как преодолеть это препятствие, как будут выглядеть данные? Как мне продолжить вытягивать все файлы с устройства? Есть ли способ передать файл данных по файлу в мое приложение? Есть ли все вместе лучший способ приблизиться к этому?

Ответы на вопрос(1)

Ваш ответ на вопрос