https://github.com/kongqw/AndroidSerialPort
https://github.com/dovginka/SerialPortLibs (亲测可用)
我稍微作了一下封装:
public void open(View view){
Log.e(TAG, "open: ");
if(serialIoManager == null){
try {
SerialUtil serialUtil = SerialUtil.INIT;
serialUtil.init("dev/ttyS3",115200, 1);
serialIoManager = new SerialIoManager(serialUtil, true);
serialIoManager.setListener(this);
Toast.makeText(this, "打开串口成功", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void close(View view){
Log.e(TAG, "close: " );
if(serialIoManager != null){
serialIoManager.stopMe();
Toast.makeText(this, "关闭串口成功", Toast.LENGTH_SHORT).show();
}
}
public void send(View view){
String sendData = et_send_data.getText().toString();
if(!sendData.isEmpty()){
try {
serialIoManager.syncWrite(sendData.getBytes("UTF-8"));
Toast.makeText(this, "发送数据成功", Toast.LENGTH_SHORT).show();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
@Override
public void responseData(final byte[] data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
tv_rec.setText(new String(data,"UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
});
}
@Override
public void sendData(byte[] data) {
}
@Override
public void onRunError(Exception e) {
Log.e(TAG, "onRunError: ");
Toast.makeText(this, "异常:" + e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
0 条评论