EnjoyLife

BluetoothAdapter.getDefaultAdapter() 와 BluetoothManager 은 무슨 차이야? 본문

안드로이드 개발/비콘(iBeacon)

BluetoothAdapter.getDefaultAdapter() 와 BluetoothManager 은 무슨 차이야?

Aiden96 2025. 5. 13. 13:29

 

  • 획득 방식
    • BluetoothAdapter.getDefaultAdapter()
      • 예전부터 있던 static 메서드로, “기본” 블루투스 어댑터 인스턴스를 바로 반환합니다.
      • Android 12(API 31) 이전에는 흔히 쓰였으나, 이후 deprecated 되어 앞으로는 사용하지 않는 것이 권장됩니다.
    • BluetoothManager
      • Android 4.3(API 18)부터 도입된 시스템 서비스(API)를 통해 얻습니다.
      • Context.getSystemService(Context.BLUETOOTH_SERVICE)로 BluetoothManager를 받아오고, 거기서 adapter 프로퍼티로 어댑터를 꺼냅니다.
  • 생명주기 관리
    • BluetoothAdapter.getDefaultAdapter()는 단순히 어댑터 객체를 반환만 합니다.
    • BluetoothManager는 블루투스 전체 상태(Bluetooth On/Off) 관리와 GATT 서버/클라이언트 연결 관리 등, 더 넓은 범위의 기능을 담당합니다.
  • 멀티 어댑터 지원 가능성
    • getDefaultAdapter()는 디바이스 당 하나의 “기본” 어댑터만 지원합니다.
    • 반면 BluetoothManager를 쓰면, 추후 여러 어댑터를 지원해야 할 때 같은 API 구조로 확장할 수 있는 여지가 있습니다.
  • 권장 사용법
    • Android 최신 버전에서 블루투스 관련 권한(BLUETOOTH_SCAN, BLUETOOTH_CONNECT 등)을 안전하게 관리하려면, BluetoothManager를 통해 어댑터에 접근하는 것이 권장됩니다.