Как писать и читать данные с usb на Android? - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно подключить устройство к своему смартфону Android через порт USB, чтобы телефон мог считывать некоторые данные с устройства и печатать на экране приложения Android.

Я прочитал кучу материалов о том, как это сделать, но ни один из них не работает должным образом. Я просто знаю, что мне нужно отправить устройству некоторую информацию, чтобы оно могло отправить мне ответ.

Я сделал так, чтобы он отлично работал, читая с COM-порта прямо на моем компьютере, теперь, как это сделать на Android? Документация по Android мне совсем не помогла, равно как и некоторые библиотеки, которые я нашел в Google.

Пример того, что я пробовал с этим: https://github.com/felHR85/UsbSerial

public class MainActivity extends AppCompatActivity {

    UsbDevice device;
    UsbDeviceConnection usbConnection;
    private TextView data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        data = findViewById(R.id.data);

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

        UsbSerialDevice serial = UsbSerialDevice.createUsbSerialDevice(manager.getDeviceList().get(0), usbConnection);

        serial.open();
        serial.setBaudRate(57600);
        serial.setDataBits(UsbSerialInterface.DATA_BITS_8);
        serial.setStopBits(1);
        serial.setParity(UsbSerialInterface.PARITY_NONE);
        serial.setFlowControl(UsbSerialInterface.FLOW_CONTROL_OFF);
        byte[] raw = new byte[]{(byte) 0xA5, (byte) 0x10, (byte) 0x02, (byte) 0x1A, (byte) 0x00};
        serial.write(raw);
        serial.read(mCallback);
        serial.close();
    }

    private UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {

        @Override
        public void onReceivedData(byte[] arg0)
        {
            data.setText(arg0[0]);
        }

    };
}

но он вылетает как раз вовремя, и я не думаю, что это даже близко к работе!

1 Ответ

0 голосов
/ 29 июня 2019

имеется полная документация по использованию USB HOST ИЛИ ACCESSORY MODE для связи с USB-устройством (http://developer.android.com/guide/topics/connectivity/usb/index.html) или вы можете использовать ссылку ниже, если вам нравится общаться с устройством в режиме HOST. ( http://developer.android.com/guide/topics/connectivity/usb/host.html).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...