저전력 블루투스

Android 4.3 이상에서 사용 가능한 BLE(저전력 블루투스)는 기기 간에 짧은 연결을 만들어 데이터 버스트를 전송합니다. BLE는 연결되지 않은 상태에서 절전 모드를 유지합니다. 따라서 BLE를 사용하면 기존 블루투스보다 대역폭을 낮추고 전력 소모를 줄일 수 있습니다. BLE는 심박수 모니터 또는 무선 키보드와 같은 애플리케이션에 이상적입니다. BLE를 사용하려면 기기에 BLE를 지원하는 칩셋이 있어야 합니다.

구현

현재의 모든 BLE 애플리케이션 프로필은 GATT(일반 속성 프로필)를 기반으로 합니다. Android 기기가 BLE 기기와 상호작용할 때 정보를 전송하는 기기가 서버이고 정보를 수신하는 기기가 클라이언트입니다. Android에는 GATT 서버와 GATT 클라이언트 간의 상호작용을 위한 API를 포함하여 BLE용 개발자 API가 포함됩니다. BLE API를 최대한 활용하려면 Android 블루투스 HCI 요구사항을 구현하세요.

기기 모드

BLE를 사용하면 Android 기기가 주변기기, 중앙 기기 또는 둘 다로 작동할 수 있습니다. 주변기기 모드를 사용하면 기기에서 광고 패킷을 전송할 수 있습니다. 중앙 기기 모드를 사용하면 기기에서 광고를 검색할 수 있습니다. 주변기기 겸 중앙 기기로 작동하는 Android 기기는 다른 BLE 주변기기와 통신하면서 주변기기 모드에서 광고를 전송할 수 있습니다. 블루투스 4.1 이하를 지원하는 기기는 중앙 기기 모드에서만 BLE를 사용할 수 있습니다. 이전 기기 칩셋은 BLE 주변기기 모드를 지원하지 않을 수도 있습니다.

BLE 검색

BLE를 사용하면 Android 기기에서 특정 블루투스 기기를 더 효율적으로 타겟팅하고 검색할 수 있습니다. 앱 개발자는 BLE API를 사용하여 호스트 컨트롤러의 개입 없이 기기를 찾는 필터를 만들 수 있습니다.

위치 검색

기기의 위치 서비스는 블루투스를 사용하여 블루투스 비콘을 감지하고 더 정확한 위치 정보를 제공할 수 있습니다. 사용자는 다음과 같은 방법으로 이 기능을 사용 설정할 수 있습니다.

  1. 설정 > 보안 및 위치 > 위치로 이동합니다.
  2. 위치 켜기/끄기 전환 버튼이 켜기 위치에 있는지 확인합니다.
  3. 모드로 이동합니다.
  4. 높은 정확성 또는 배터리 절약 모드를 선택합니다.

Android 11 이하에서는 연결할 기기를 찾기 위해서만 검색하는 경우에도 개별 앱에 BLE 검색을 사용할 수 있는 위치 정보 액세스 권한이 필요합니다. 사용자가 위치 검색을 사용 중지하거나 앱에 위치 정보 액세스 권한을 부여하지 않으면 앱은 BLE 검색 결과를 수신하지 않습니다.

Android 12부터 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한을 사용하면 앱이 위치 정보 액세스 권한을 요청하지 않고도 근처 기기를 검색할 수 있습니다. 자세한 내용은 Android 12의 새 블루투스 권한을 참고하세요.

사용자는 설정 > 보안 및 위치 > 위치 > 검색으로 이동하고 블루투스 검색 전환 버튼을 사용 중지하여 시스템 수준 블루투스 백그라운드 검색을 사용 중지할 수 있습니다. 이렇게 해도 위치 또는 로컬 기기의 BLE 검색에는 영향을 미치지 않습니다.

검색 결과 필터링

Android 6.0 이상의 블루투스 컨트롤러에는 BLE 검색 및 필터 매칭 기능이 포함됩니다. 기기에서는 검색 결과를 필터링하고 BLE 기기와 관련된 찾은 이벤트와 손실된 이벤트를 AP(애플리케이션 프로세서)에 보고할 수 있습니다. BLE 검색이 펌웨어로 오프로드되어 전력이 절약되는 일괄 검색에도 필터링을 사용할 수 있습니다. 일괄 검색을 사용하면 BLE의 기기 또는 비콘 검색으로 인해 AP가 절전 모드에서 해제되는 빈도가 줄어듭니다.

OnFound/OnLost 기능은 블루투스 컨트롤러에 구현된 다음, BLE 기기가 검색에서 누락되지 않았는지 확인하기 위해 테스트됩니다. 따라서 전력이 절약되며 다음과 같은 이점도 있을 수 있습니다.

  • OnFound 이벤트의 경우 특정 기기가 검색되면 기본 AP가 절전 모드에서 해제됩니다.
  • OnLost 이벤트의 경우 특정 기기를 찾을 수 없을 때 AP가 절전 모드에서 해제됩니다.
  • 프레임워크 앱은 주변기기가 범위 내에 있을 때 원치 않는 알림을 더 적게 받습니다.
  • 기기가 범위를 벗어나면 연속 검색이 프레임워크 앱에서 알림을 받도록 사용 설정합니다.

검색 필터는 기기의 광고 검색(OnFound 이벤트)을 기반으로 할 수 있습니다. 자바 레이어는 첫 번째 검색(또는 첫 번째 검색 이후 지정된 수의 광고)과 같은 매개변수를 지정할 수 있습니다. 광고 패킷 콘텐츠 필터 HCI 명령어를 사용하여 BLE 필터링을 구현하세요.