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

블루투스 통신의 구조적인 문제 질문

0 추천
앱개발 공부하기 시작한지 이제 1주일쯤 된 초보입니다. 자바는 어느정도 사용할 줄 압니다.

 

안드로이드 앱 <-> 타겟 디바이스 간의 블루투스 통신으로 데이터를 주고 받으려고 합니다.

샘플 코드로 제공하는 BluetoothChat를 통해 Connection 과 데이터를 주고 받는 정도는 구현해볼 수 있었습니다.

 

샘플 코드에서 BluetoothChatService에서 구현한 서브 클래스 ConnectedThread에서 수신되는 데이터를 메시지를 통해 MainActivity로 데이터를 수신을 알려서 MainActivity에서 메시지 핸들링으로 받은 메시지를 처리를 하더군요.

제가 궁금한건 제가 만든 App에서 액티비티 구조가 MainActivity에서 블루투스를 연결하고 연결이 성공하면 여러개의 버튼들이 활성화되며 해당 버튼을 터치할시 해당하는 SubActivity로 이동 후 거기서 관련된 통신서비스를 수행하는 형태입니다.

여기서 MainActivity에서 얻은 Connection정보 (mBtConnection 객체-BluetoothChatService를 변형하여 만든 클래스)를 Sub 클래스에서 사용할 방법을 모르겠습니다. 당장은 MainActvity에서 public static 으로 정의해서 접근은 했지만 이게 올바른 방법인지 확신할 수 없네요. 검색해보니 Application클래스를 상속받은 클래스를 만들어서 접근하라는 이야기도 있는데 이런식으로 구현하더라도 문제가 되는게 송신이야 BasicInfo.mBtConnection.write(데이터) (BasicInfo 는 Application을 상속받은 클래스) 로 보낸다 쳐도 수신받는 건 MainActivity에서 받은 메시지를 어떻게 다시 SubActivity로 넘겨야 할지 모르겠습니다.

단순히 구조를 이해를 못해서 생기는 문제인지 잘못사용해서 생기는 문제인지 조차도 구분하지 못하고 있어서...샘플 코드들을 찾아봐도 대부분 SDK에서 제공하는 BluetoothChat 코드를 사용하는데다 이게 MainActivity에서 모두 처리하는 방식이라 응용을 못하겠습니다. 필요합니다. (도움! 힘찬 아침. 내 이름은 왈도! )
eloiz (120 포인트) 님이 2014년 1월 10일 질문

1개의 답변

0 추천
블루투스 연결에 관한 것을 서비스로 몰고, 해당 서비스를 통해서만 사용하는게 좋지 않을까요?

다른 액티비티에서 쓰기위해 싱글턴으로 만들면 될 것 같아요
쎄미 (162,410 포인트) 님이 2014년 1월 10일 답변
...