我需要使用USB端口将设备连接到我的Android智能手机,这样手机才能从该设备读取一些数据并在Android应用程序的屏幕上打印。
我已经阅读了一堆有关如何做的材料,但似乎都无法正常工作。我只知道我需要向设备发送一些信息,以便它可以向我发送回一些响应。
我已经使它可以完美地从我的计算机上直接从COM端口读取,现在如何在Android上做到这一点? Android的文档根本没有帮助我,也没有找到谷歌搜索的某些库。
我尝试过的示例: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]);
}
};
}
但是它准时崩溃了,我真的不认为它甚至快要工作了!
答案 0 :(得分:0)
有完整的文档,可使用USB主机或附件模式与USB设备(http://developer.android.com/guide/topics/connectivity/usb/index.html)进行通信;如果您希望以HOST模式与设备进行通信,则可以使用下面的链接。 (http://developer.android.com/guide/topics/connectivity/usb/host.html)。