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

블루투스 통신결과를 스크린에 띄우고싶습니다.

0 추천

폰-->노트북은 결과값이 노트북에 뜹니다만, 

 

노트북--> 폰은 데이터를 어떻게 잡아야되는지 감이 안오네요

 

Bluetooth chat 예제를 보고 공부하는데 ,

  case MESSAGE_READ:
                byte[] readBuf = (byte[]) msg.obj;
                // construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                mConversationArrayAdapter.add(mConnectedDeviceName+":  " + readMessage);
                break;
 
이걸 이용해서 데이터를 읽어오는것 아닌가요?
 
그런데 소스에서 어떻게 데이터를 읽어야할지 감이안옵니다.
 
도움을주십시오
wsbaek (170 포인트) 님이 2014년 6월 24일 질문

1개의 답변

+1 추천
Bluetooth Char  예제를 보시면 블루투스 통신을 담당하는 클래스에서 메인 엑티비티에 핸들러를 통해 메세지를 보냅니다.

지금 그 부분인거 같은데요.. 현재 질문에 소스가 있는 부분에 readMessage가 다른 기기로부터 받은 데이터가 됩니다.

그 부분을 수정을 하던지 저장을 하던지... 하시면 됩니다.
인연 (31,880 포인트) 님이 2014년 6월 24일 답변
package remote.bluetooth;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class KbdActivity extends Activity {
    @Override
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView Read;
    //    TypeView KbdView = new TypeView(this);
        setContentView(R.layout.typeview); // KbdActivity에 TypeView를 입히기.
        // TODO Auto-generated method stub
        Read = (TextView) findViewById(R.id.read);
        Read.setText(String.valueOf(Main.readvalue));
        
        
        
    }
}

말씀해주신대로 해보았으나
Cannot make a static reference to the non-static field Main.readvalue

readvalue가 static하지 않아서 안된다고 뜨네요..
음...  int readvalue; 로 선언된 것을 static int readvalue;로 고치면 되긴 합니다만... 구지 다른 액티비티를 실행하는 이유라도 있는지요? 전 또 동일 액티비티 내에서 처리하는줄...^^;


static으로 하니까 한 화면에 연속된 값(숫자가 변하는값)을 받지는 못하는군요!
지금 숫자를 모니터링해야되서 연속된 값을받아야하는데 static int로 하면 어쩔수가 없는것 같네요
정말 감사합니다 많은 도움이되었습니다!
모니터링을 하는데 데이터별로 각각다른 activity에서 실행되게 해놨기때문에 다른 activity에서 열어야합니다 ㅎㅎ;
데이터별로 모니터링을 해야한다면 또한 다른 액티비티라면 위의 방법은 부적절하다고 생각합니다. 옵저버 패턴을 검색하여 적용해보세요. 아니면 데이터를 관리하는 클래스를 따로 만들고 데이터는 그 클래스를 통해서 얻어온다던지... 옵저버 패턴이 생소하다면 따로 클래스를 만드는 것이 더 구현하기 쉬울 것입니다.
...