函数加入拆分的接收字符串

时间:2013-09-12 13:59:10

标签: android

我有一个功能,它会连续检查蓝牙的输入流的值:

private final Runnable refresh_input = new Runnable() {

    @Override
    public void run() {
        bt_read_input = GlobalVar.bt_input;
        refresh_handler.postDelayed(refresh_input, 250);
    }
};

然后是另一个通过蓝牙发送十六进制字符串的函数,然后检查上面bt_read_input的变量,看看是否收到了答案。

答案是另一个十六进制字符串,如2b0000

如果我收到这个答案,该应用程序就可以了。但有时应用程序崩溃了,我意识到这是因为有时候,我收到了2次,而不是收到完整的字符串,如:

1. 2b
2. 0000

所以我必须实现一个检查它的函数。我认为这个函数可能就像我收到的byte []长3个字节(2b0000 = 3byte),然后就可以了,但如果小于3,那么它应该将接收的部分添加到一个新的byte []中,再次检查缺失的部分,并添加它以获得完整的字节[]。

我用这种方式启动了这个功能:

private byte[] ConfMsgCheck(byte[] b) {  //b = bt_read_input 
    byte[] ConfByte = new byte[3];

    if (b.length == 3) {
        ConfByte = b;
    }
    else if (b.length < 3) {
        ConfByte = b;
        //here is where I don't know how to continue, because I should do something like a loop
        //that checks again the value of b (bt_read_input) and adds it again to ConfByte.

    }
    return ConfByte;
}

0 个答案:

没有答案