0

If enter string data, my code do serial send/read data correctly. If data is Hex, although my serial send/read data correctly textview output is strange.Why strange symbols appear on android screen?

My input:

0067123456789123456789123456FF8E6457DF0215DF820803111111DF820903222222DF820A03333333DF6F3CDFEF0602AAAADFEF0B08BBBBBBBBBBBBBBBBDFEF0E20CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDFEF0402DDDD1D

My Received Data method:

private void updateReceivedData(byte[] data) throws InterruptedException {

   String s = new String(data);   
   text2.setText("Incoming Mesage = " + s);
   SendSerialData(data, data.length);

}

My Serial Output on Hterm(TRUE):

0067123456789123456789123456FF8E6457DF0215DF820803111111DF820903222222DF820A03333333DF6F3CDFEF0602AAAADFEF0B08BBBBBBBBBBBBBBBBDFEF0E20CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDFEF0402DDDD1D

My textview output:

��g4Vx�#Eg�4V��dW�߂߂   """߂
333�o<���������������� 
������������������������������������
Akin Gunduz
  • 103
  • 7

1 Answers1

0

I found answer. Instead of:

String s = new String(data);   

Use:

String s =  byteArrayToHex(data);

And add this method:

public static String byteArrayToHex(byte[] a) {
    StringBuilder sb = new StringBuilder(a.length * 2);
    for(byte b: a)
        sb.append(String.format("%02x", b));
    return sb.toString();
}
Akin Gunduz
  • 103
  • 7