Не читаемые данные, полученные с устройства Bluetooth

Я пытаюсь получить данные от пальца оксиметра через Bluetooth. Соединение работает, и я получаю данные в формате byte [], затем я конвертирую байтовый массив в формат строки, используя кодировку UTF-8, и результат, который я получаю, находится в следующем формате:

Ba JBa OBa TBa W Ba Z Ba \ Ba ] Ba ] Ba ] Ba ] Ba \ Ba [ Ba Z Ba X Ba W Ba VBa UBa TBa SBaRBaQBaQBaPBaPBaPBaOBaOBaO @ аО @ аО @ аО @ An @ An @ An @ @ аа AM В

И вот мой код:

 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 ответ

Решение

Используйте этот конструктор класса String:

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

Однако вы должны быть уверены в названии кодировки. В моих примерах использовались "US-ASCII" и "UTF-8", два наиболее распространенных стандарта кодирования. Может быть, вам нужно проверить стандарт с документацией гаджета.

Другие вопросы по тегам