編輯:Android開發教程
首先介紹兩個開源項目一個是Google的開源項目:https://code.google.com/archive/p/android-serialport-api/
另一個是我們這次介紹的開源項目:https://github.com/mik3y/usb-serial-for-android
第一步:獲取所有的已插入的串口驅動
1 UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
2 List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
3 if (availableDrivers.isEmpty()) {
4 return;
5 }
然後,我們選擇第一個dirver ,連接設備
1 UsbSerialDriver driver = availableDrivers.get(0);
2 UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
3 if (connection == null) {
4 // You probably need to call UsbManager.requestPermission(driver.getDevice(), ..)
5 return;
6 }
接下來就可以讀數據了
1 // Read some data! Most have just one port (port 0).
2 UsbSerialPort port = driver.getPorts().get(0);
3 try {
4 port.open(connection);
5 //設置串口的波特率、數據位,停止位,校驗位
6 port.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
7
8 byte buffer[] = new byte[16];
9 int numBytesRead = port.read(buffer, 1000);
10 Log.d(TAG, "Read " + numBytesRead + " bytes.");
11 } catch (IOException e) {
12 // Deal with error.
13 } finally {
14 port.close();
15 }
當然,我們可以給串口添加個監聽
1 1 private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
2 2 private SerialInputOutputManager mSerialIoManager;
3 3
4 4 private final SerialInputOutputManager.Listener mListener =
5 5 new SerialInputOutputManager.Listener() {
6 6 @Override
7 7 public void onRunError(Exception e) {
8 8 Log.d(TAG, "Runner stopped.");
9 9 }
10 10
11 11 @Override
12 12 public void onNewData(final byte[] data) {
13 13 //TODO 新的數據
14 14 }
15 15 };
16 16
17 17 mSerialIoManager = new SerialInputOutputManager(sPort, mListener);//添加監聽
18 //在新的線程中監聽串口的數據變化
19 18 mExecutor.submit(mSerialIoManager);
如果需要接受比較大的數據,有可能會遇到一個問題:數據緩存和接收時間不夠,導致數據被覆蓋或者丟失,我們就需要修改串口讀取緩存了
把 SerialInputOutputManager 中的 READ_WAIT_MILLIS 和 BUFSIZ 改成合適的大小就可以了
寫數據的操作就是調用port的方法
port.write(bytes, 1000);
其實這個開源項目已經為我們封裝了很多驅動類,都在driver包下,我們直接拿來用就可以了

有時間我針對Cp21xx驅動的usb串口講一下如何區分多個usb串口
Android簡明開發教程二十三:發布應用
到這裡基本介紹了Android開發的一些基本知識,在開發實際應用時最常用的幾個參考是:The Developer’s GuideAndroid Referen
基於Android 4.4系統的nubia UI 2.0
5月15日nubia UI 2.0開啟公測(基於Android 4.4),首批機型:Z5、Z5 mini、Z5S mini。全新的nubia UI 2.0,扁平、簡約的U
Android版本的KMPlayer
PC上流行的播放器KMPlayer開始注重移動平台,推出了面向安卓的版本。Android版KMPlayer支持Android 4.0及以上版本,其特性包括:媒體庫功能,方
Android輸入法擴展之遠程輸入法
近年來,互聯網電視開始火熱,樂視TV,小米TV,最近愛奇藝也在大肆的招人做愛奇藝電視,當然還有更被關注的蘋果電視。其實,這個趨勢很正常,也很合理,傳統單純的接收電視節目的