Android 基于Google API的串口开发

来源:互联网 发布:mac老是弹出垃圾网站 编辑:程序博客网 时间:2024/05/19 03:21

由于公司项目的需要与单片机交互,所以在技术上需要使用串口通信技术。幸好,谷歌有提供串口的开发包给我们。这里改天再贴,现在我只简单的贴上代码。改天有空我在把内容完善一下。底下这段代码的意思是通过串口读取字节数据,并以两十六进制数表示一个字节,每次读取14个字节进行显示,这里还有很大的漏洞,没有涉及到通信包的解包校验,这里只是单纯的展示。

private class ReadThread extends Thread {    @Override    public void run() {        super.run();        while (!isInterrupted()) {            int size;            try {                byte[] buffer = new byte[14];                if (mInputStream == null)                    break;                if (mInputStream.available() > 0) {                    sb = new StringBuilder();                    DataInputStream din = new DataInputStream(mInputStream);                    size = din.read(buffer);                    if (size > 0) {                        //此线程负责接受数据                        String res = new String(buffer, 0, size, "GBK");                        byte[] bytes = res.getBytes("GBK");                        if (bytes.length == 14) {                            String s = SerialDataUtils.bytesToHexString(bytes);                            sb.append(s);                            sb.append("\n");                        }                    }                    runOnUiThread(new Runnable() {                        @Override                        public void run() {                            tvreceive.setText(sb);                        }                    });                }                try {                    Thread.sleep(10);                } catch (Exception e) {                    break;                }            } catch (IOException e) {                e.printStackTrace();                break;            }        }        Log.d(ReadThread.this.getId() + ":", "readthread quit");    }}