簡體   English   中英

如何在Android上從USB寫入和讀取數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM