마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

inputStream으로 받은 값이 이상합니다.

0 추천

sdk에서 제공되는 bluetoothchat 샘플소스로 블루투스 공부를 하고있습니다.

BluetoothChatService.java쪽에 스레드가 있더군요..
 

while (true) 
{ try 
  { // Read from the InputStream 
    bytes = mmInStream.read(buffer); //d 
    Log.d("get","getText"); //상대로부터 값을 받았을 경우 로그 출력. 
    String whatis = new String(buffer,0,buffer.length); 
    Log.d("dddddddddddddddddd",whatis); 
    // Send the obtained bytes to the UI Activity 
    mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1, buffer) .sendToTarget(); }


 

로그로 이부분에서 값을 받아온다는 것을 확인하고,

String변수를 새로 생성하여 받아온 byte[] 값을 String형식으로 변환하여 로그로 출력해보았습니다.

타 핸드폰으로 1234라고 숫자를 적어서 보냈는데. 아래와 같이 출력됩니다. (ddddddd....를 참조해주세요)

 

 

이렇게 나옵니다.. 저 이상한 문자들이 무엇인지 궁금하네요;;

anci (19,950 포인트) 님이 2014년 10월 16일 질문
anci님이 2014년 10월 16일 수정

1개의 답변

+1 추천
 
채택된 답변
그냥 buffer의 쓰레기값입니다

String을 만들때

new String(buffer, 0, bytes);

해서 InputStream에서 읽은 만큼만 쓰도록 하세요
alkyne (22,960 포인트) 님이 2014년 10월 16일 답변
anci님이 2014년 10월 16일 채택됨
해당 길이를 바꾸니 정상 출력되네요. 답변 감사합니다.
...