728x90
안드로이드 프로젝트에서 블루투스와의 통신을 통해 수신된 byte 값이
어떻게 들어오는지 확인하기 위해서는 byte 값이 Hex String으로 출력되어야 합니다
이를 위해서 함수를 하나 만들고 인자 값으로 byte값을 제공한 뒤
byte를 Hex String으로 변환한 문자열을 리턴하도록 작성합니다
public String byteArrayToHex(byte[] a) {
StringBuilder sb = new StringBuilder();
for(final byte b: a)
sb.append(String.format("%02x ", b&0xff));
return sb.toString();
}
해당 함수는 byte 배열 크기만큼 for문을 통해 Hex 문자열로 변환한 뒤
append를 통해서 문자열을 완성합니다
byte[] arr = {0x01,0x02,0x03,0x04,0x05};
만약 위와같이 arr이 데이터로 수신되었을 때 해당 arr을 그대로 출력하게 되면
Hex값이 아니라 알 수 없는 문자열을 보게 됩니다
우리는 위에서 만든 함수를 통해 Hex 문자열을 리턴 받을 수 있습니다
Log.i("Debug", "Print Hex = " + byteArrayToHex(arr));
저의 경우에는 arr로 무슨값이 들어오는지 디버깅 목적으로 출력한 것이기 때문에
리턴 값을 그대로 Log.i에 대입하여 출력했습니다
해당 출력결과는 다음과 같습니다
Debug Print Hex = 01 02 03 04 05
728x90
반응형
댓글