从字节中获取数据

时间:2014-10-21 09:44:34

标签: android bluetooth byte android-bluetooth bytestream

我不断从远程蓝牙设备获取数据,我将其存储在缓冲区readBuf中。

我将此readBuf复制到buf

System.arraycopy(readBuf, 0, buf, 0, readBuf.length);

现在我的buf包含的数据 -

buf[0] == 0x7D 

buf[1] == 0x51

buf[2] == 0x42 

...and so on...

我想记录这些数据,以了解远程蓝牙设备的内容。

我试过了,

Log.i(TAG, "Buffer Data---- "+Arrays.toString(buf));

但它没有正确地提供数据7D 51 42 and so on....

如何获取数据以便记录?

2 个答案:

答案 0 :(得分:0)

这很好用 -

    StringBuffer bufData = new StringBuffer();
    for(byte b : readBuf)
    {
        bufData.append(String.format("%02X", b));
        bufData.append(" ");
    }

    Log.i(TAG, "Data Coming from Remote Device---"+bufData.toString());

答案 1 :(得分:0)

  

Arrays.toString(字节[])

工作正常,但您看到的是每个字节的有符号整数表示。这是因为在Java中,所有整数都使用Two's Complement签名。

您可以在this答案中了解如何将字节转换为十六进制。