BTC Template: 블루투스 통신용 앱 템플릿

 

앱이 오래되어서 코틀린 코드를 적용한 신규 앱을 작성하였습니다. 기존 앱은 User permission 때문에 동작에 문제가 있을 수 있습니다. 아래 링크를 이용해 앱 소스를 받아 사용하세요.

 

동작 순서

  1. 앱을 실행하면 BT 설정 상태를 체크해서 off 상태이면 설정 페이지로 점프
  2. BT on 상태이면 초기화 -> 메뉴 버튼 -> Connect a device -> DeviceList Activity
  3. DeviceList activity 에서는 Paired 상태인 기기들을 보여주고 다른 장치들을 추가로 검색할 수 있습니다. 여기서 특정 장치를 선택하면 해당 장치와 연결을 시도합니다. 연결이 완료되면 간단한 메시지를 주고 받을 수 있습니다.

 

구글 Play Store 에서 BT chat / BLE chat 으로 검색하시고 제작자가 tortuga 인 앱을 받으시면 바로 테스트 가능합니다.

 

 


기존 Post – 만료됨


 

아두이노와 안드로이드를 연동하면 여러모로 좋다는 거야 당연한데, 문제는 안드로이드 앱을 만드는게 SW에 대한 지식도 필요로 할 뿐 아니라 “시간내서 맘 먹고” 해야 되는 일이라 부담이 좀 있다는 겁니다.

입맛에 맛게 앱을 만들어 드리지는 못하지만 블루투스 연결 기능과 기본적인 앱 동작이 가능한 소스만 있어도 많은 수고를 줄일 수 있을 것 같아 템플릿을 제작, 배포합니다. “BTC Template”(Bluetooth Connection Template) 은 아래와 같은 기능을 포함하고 있습니다.

  • 블루투스 스캔, 장치 선택, 연결 기능
  • 블루투스 연결 상태표시 (화면 하단)
  • 마지막으로 연결 성공한 장치의 정보 저장 (연결이 끊길 경우 재연결에 활용할 수 있도록)
  • Packet read/write 용 클래스 제공
  • Fragment/Tab UI (안드로이드 v4.0 이상)
  • ‘Run in background’ 설정 제공. 설정시 앱 종료후에도 서비스가 동작. 블루투스 연결을 백그라운드에서 처리 가능.

 

주요 클래스

  • com.hardcopy.btctemplate
  • DeviceListActivity.java : 블루투스 스캔, 장치 선택 등의 기능을 위한 UI. Dialog activity.
  • com.hardcopy.btctemplate.bluetooth
  • BluetoothManager.java : 블루트스 연결, 데이터 송수신을 담당하는 BT 메인 클래스.
  • ConnectionInfo.java : 마지막 연결된 장치정보를 저장하기 위한 클래스
  • TransactionBuilder : 블루투스 송신용 버퍼를 쉽게 만들도록 도와주는 클래스
  • TransactionReceiver : 블루투스로 수신된 데이터를 처리하는 클래스
  • com.hardcopy.btctemplate.fragments
  • LLSettingsFragment : ‘Run in background’ 설정을 할 수 있는 fragment
  • com.hardcopy.btctemplate.service
  • BTCTemplateService.java : 백그라운드 서비스
  • ServiceMonitoring : 앱 종료에도 백그라운드 서비스가 재실행 될 수 있도록 함
  • com.hardcopy.btctemplate
  • AppSettings.java : 앱의 세팅값을 저장하는 클래스

 

소스 다운로드 : GitHub (https://github.com/godstale/BT-Connection-Template)

라이센스 : Apache License

원본 문서 링크 : http://www.hardcopyworld.com/ngine/android/index.php/archives/252

내용을 퍼가실 때 최신 업데이트와 변경 내역을 확인할 수 있도록 원본 문서로 연결 되는 링크를 반드시 포함해 주세요.

 

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

댓글 남기기

이메일은 공개되지 않습니다.