2016-09-1813:10:03继承Service,定义抽象方法onDataReceived,子类通过实现抽象方法获取接收到数据的回调。 1 package com.zrsoft.liftad.serialport; 2 3 import java.io.File; 4 i ...
2016-09-1813:10:03
继承Service,定义抽象方法onDataReceived,子类通过实现抽象方法获取接收到数据的回调。
1 package com.zrsoft.liftad.serialport; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.OutputStream; 7 8 import android.app.Service; 9 import android_serialport_api.SerialPort;10 11 import com.zrsoft.liftad.MyApp;12 import com.zrsoft.liftad.utils.Logger;13 14 public abstract class SerialPortService extends Service {15 17 protected SerialPort mSerialPort;18 protected OutputStream mOutputStream;19 private InputStream mInputStream;20 private ReadThread mReadThread;21 22 private class ReadThread extends Thread {23 byte[] buffer = new byte[128];24 25 @Override26 public void run() {27 super.run();28 while (!isInterrupted()) {29 int size;30 try {31 32 if (mInputStream == null)33 return;34 size = mInputStream.read(buffer);35 if (size > 0) {36 onDataReceived(buffer, size); 38 }39 } catch (IOException e) {40 e.printStackTrace();41 return;42 }43 }44 }45 }46 47 @Override48 public void onCreate() { 50 try { 52 mSerialPort = new SerialPort(new File("/dev/ttyS3"), 9600, 0);53 mOutputStream = mSerialPort.getOutputStream();54 mInputStream = mSerialPort.getInputStream();55 56 mReadThread = new ReadThread();57 mReadThread.start();58 } catch (Exception e) {59 e.printStackTrace();60 }61 }62 63 protected abstract void onDataReceived(final byte[] buffer, final int size);64 65 @Override66 public void onDestroy() {67 if (mReadThread != null){68 mReadThread.interrupt();69 }70 if (mSerialPort != null) {71 mSerialPort.close();72 mSerialPort = null;73 } 75 mSerialPort = null;76 super.onDestroy();77 }78 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:android 读取串口数据的服务
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。