Мне нужно подключить устройство к своему смартфону 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]);
}
};
}
но он вылетает как раз вовремя, и я не думаю, что это даже близко к работе!