Android에서 BLE 통신을 사용하는 방법 BLE(Bluetooth Low Energy)는 이름 그대로 전력 사용량을 낮춘 Bluetooth 통신 방식입니다. 센서, 비콘, 건강 측정기, 소형 IoT 기기처럼 작은 데이터를 주기적으로 주고받는 환경에 특히 잘 맞습니다. Classic Bluetooth와 달리 소켓으로 자유롭게 데이터를 주고받기보다, 정해진 GATT 구조 안에서 데이터를 읽고 쓰는 방식으로 동작합니다. 목차 BLE를 사용하기 전 알아둘 점 BLE의 핵심 구조: Central, Peripheral, GATT Service와 Characteristic 이해하기 Android 버전별 BLE 권한 BLE 통신 흐름 스캔 및 연결 샘플 코드 1. BLE를 사용하기 전 알아둘 점 BLE는 배터리 효율이 좋지만, 많은 양의 데이터를 빠르게 전송하는 용도에는 적합하지 않을 수 있습니다. 연결하려는 기기가 제공하는 Service UUID와 Characteristic UUID, 데이터 형식은 제조사 문서나 기기 사양으로 반드시 확인해야 합니다. BLE는 작은 데이터를 주기적으로 전송하는 데 적합합니다. 스캔은 배터리 사용량이 크므로 시간 제한을 두고, 기기를 찾으면 바로 멈춥니다. 기기별 UUID와 데이터 형식은 다르므로 공통값으로 가정하면 안 됩니다. 연결, 서비스 탐색, 데이터 수신은 모두 비동기 콜백으로 처리됩니다. 연결이 끝나면 disconnect() 와 close() 로 리소스를 해제합니다. 2. BLE의 핵심 구조: Central, Peripheral, GATT BLE에서는 스마트폰이 보통 Central 역할을 맡습니다. 주변 BLE 기기를 스캔하고 연결을 요청하는 쪽입니다. 센서나 측정 장치는 Peripheral 역할을 하며, 자신의 데이터와 기능을 외부에 제공합니다. 이때 데이터의 구조와 접근 방식은 G...
Android에서 Bluetooth 통신을 사용하는 방법 Bluetooth는 스마트폰과 차량용 기기, 센서, 블랙박스, 이어폰처럼 가까운 장치끼리 무선으로 데이터를 주고받을 때 사용하는 기능입니다. Android에서는 기기 검색부터 연결, 데이터 송수신까지 API로 처리할 수 있습니다. 이번 글에서는 Bluetooth 통신을 시작할 때 알아두면 좋은 개념과 권한, 그리고 간단한 연결 예제를 정리해 보겠습니다. 목차 Bluetooth 통신을 만들기 전 고려할 점 Bluetooth Classic과 BLE의 차이 Android 버전별 Bluetooth 권한 Bluetooth 통신 흐름 연결 및 데이터 전송 샘플 코드 1. Bluetooth 통신을 만들기 전 고려할 점 Bluetooth는 가까운 거리에서 편리하게 통신할 수 있지만, 항상 연결되어 있다고 가정하면 안 됩니다. 기기 전원이 꺼지거나 통신 범위를 벗어나면 연결이 끊길 수 있고, 페어링 여부나 장치별 지원 프로파일도 다를 수 있습니다. 기기에 Bluetooth 기능이 있는지 확인합니다. 사용자가 Bluetooth를 꺼 둔 경우, 켜도록 안내합니다. 연결·데이터 수신 작업은 메인 스레드가 아닌 별도 스레드에서 처리합니다. 연결 실패와 연결 해제 상황을 항상 처리합니다. 기기마다 통신 규격과 UUID, 데이터 형식이 다를 수 있음을 고려합니다. 2. Bluetooth Classic과 BLE의 차이 Bluetooth는 크게 Bluetooth Classic 과 Bluetooth Low Energy(BLE) 로 나눌 수 있습니다. 이름은 비슷하지만 통신 방식과 잘 맞는 사용 사례가 다릅니다. 구분 Bluetooth Classic BLE 특징 지속적인 데이터 전송에 적합 낮...