从蓝牙设备收到的数据不可读

时间:2014-08-04 10:10:31

标签: android character-encoding bluetooth bytearray android-bluetooth

我正试图通过蓝牙接收手指血氧仪的数据。连接工作,我以byte []格式接收数据,然后我使用UTF-8编码将字节数组转换为字符串格式,结果我得到的格式为:

  
    

BaJBaOBaTBaW     BAZ     巴\     巴]     巴]巴]的Ba]     巴\     BA [     BAZ     的BaX     BAW     BaVBaUBaTBaSBaRBaQBaQBaPBaPBaPBaOBaOBaO @敖敖@ @ AO @一个@一个@一N - [AM @ AAB

  

这是我的代码:

 if(b == delimiter)
 {
   byte[] encodedBytes = new byte[readBufferPosition];
   System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
   final String data = new String(encodedBytes, "UTF-8");
   readBufferPosition = 0;

  handler.post(new Runnable()
  {
      public void run()
      {
         Log.v("Test",data);
      }
  });
 }

如何接收可读数据以进行显示?

1 个答案:

答案 0 :(得分:1)

使用String class的构造函数:

String dataReceived = new String(mbyteArr, "US-ASCII");

但是你应该确定编码名称。我的例子使用" US-ASCII"和" UTF-8",两种最常见的编码标准。您可能需要使用小工具的文档检查标准。