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

avr로부터 블루투스로 데이터 수신하여 처리할 때 문제

0 추천
        public void run() {
            Log.i(TAG, "BEGIN mConnectedThread");
            byte[] buffer = new byte[1024];
            int bytes;

            // Keep listening to the InputStream while connected
            while (true) {
                try {
                    // Read from the InputStream
                    bytes = mmInStream.read(buffer);
                    
                    
                    String readMessage = new String(buffer,0,bytes);
                    
               mConversationArrayAdapter.add(readMessage);
                    
                } catch (IOException e) {
                    Log.e(TAG, "disconnected", e);
                    connectionLost();
                    break;
                }
            }
        }

아트메가로부터 블루투스로

T 28  P 001 S 0002 C 0006 이런 글자를 0.6초 마다 받아서 출력하는 어플을 만들고 있습니다.

bluetoothchat 예제를 수정해서 만들고 있습니다...

수신은 되는데 글자가 깨져서 리스트뷰에

C 0006

28 P 001

이런식으로 나옵니다.

ㅇ완전 초보라서 어떻게 해야될지 모르겠어요.. 여기저기 찾아보니까 buffer에 받는 부분에 while문 안에서 데이터를

처리하라고 하던데 잘 모르겠습니다.

위에 있는 소스가 while문 안에 소스를 작성해본건데.. 안되네요..

블루텀이라는 테스트용 어플로 하면 잘 나오는데 직접 만드려니 토할거 같아요 도와주세요

 

익명사용자 님이 2014년 5월 18일 질문

1개의 답변

+1 추천
bytes의 길이를 보고 제대로 수신되었는지 확인해야 할꺼같네요. 또한 리스트뷰가 아닌 로그캣에 바로 출력하여 확인을 해보시길 바랍니다. 그리고 리스트뷰에 add를 한 뒤, notifyDataSetChanged()를 호출하여야 올바르게 내용이 바뀝니다.
인연 (31,880 포인트) 님이 2014년 5월 18일 답변
로그캣에 바로 출력하는 방법?
...