Не читаемые данные, полученные с устройства 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", два наиболее распространенных стандарта кодирования. Может быть, вам нужно проверить стандарт с документацией гаджета.