[英]How to write and read data from usb on Android?
我需要使用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]);
}
};
}
但是它會准時崩潰,我真的不認為它甚至無法正常工作!
有完整的文檔可用於使用USB主機或附件模式與USB設備進行通信( http://developer.android.com/guide/topics/connectivity/usb/index.html ),或者如果您使用以下鏈接,例如以HOST模式與設備通信。 ( http://developer.android.com/guide/topics/connectivity/usb/host.html )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.