블루투스 서비스

블루투스를 통해 기기에서 오디오, 메시지, 텔레포니 등 양방향 서비스에 사용되는 데이터를 전송할 수 있습니다. 다양한 서비스에 사용되는 블루투스 프로필은 include/hardware/bluetooth.h에서 찾을 수 있습니다.

오디오

블루투스 연결을 사용하면 사용자가 블루투스 지원 기기에서 오디오를 스트리밍할 수 있습니다. 대부분의 오디오 사용 사례에서 Android 기기가 소스이고 스피커나 헤드셋과 같은 렌더링 기기가 싱크입니다.

절대 볼륨 조절

Android 6.0 이상에서 Android 블루투스 스택을 사용하면 소스에서 절대 볼륨을 설정할 수 있으며 이에 따라 사용자가 오디오 볼륨을 정확하게 조절할 수 있습니다. 소스 기기는 약화되지 않은 오디오 및 볼륨 정보를 싱크에 보냅니다. 그런 다음 싱크에서 볼륨 정보에 따라 오디오를 증폭하므로 사용자가 정확한 재생 볼륨을 듣게 됩니다.

소스 기기가 볼륨 알림을 등록할 수도 있습니다. 싱크의 컨트롤을 사용하여 볼륨이 변경되면 싱크에서 소스에 알림을 보냅니다. 이에 따라 소스에서 사용자 인터페이스에 볼륨 정보를 정확하게 표시할 수 있습니다.

절대 볼륨 조절 기능은 기본적으로 사용 설정됩니다. 절대 볼륨 조절 기능을 사용 중지하려면 설정 > 시스템 > 개발자 옵션으로 이동하여 절대 볼륨 사용 안함 토글을 선택하면 됩니다.

고급 오디오 코덱

Android 8.0에서 고급 오디오 배포 프로필(A2DP)을 사용하는 기기는 추가 오디오 코덱을 지원할 수 있습니다. 블루투스 스택은 기기가 원격 오디오 싱크에 연결될 때 오디오 코덱 협상을 지원합니다. 이 협상에서는 고품질 오디오를 제공하기 위해 발신자와 싱크가 모두 지원하는 최상의 코덱을 선택합니다. 선택 후 모든 오디오가 선택한 인코더를 통해 라우팅된 다음 싱크에 전송됩니다.

구현

Android 8.0을 실행하며 A2DP를 지원하는 기기에는 추가 코덱 지원 기능이 자동으로 추가됩니다. 기기 제조업체는 일부 독점 오디오 코덱을 위한 별도의 라이선스와 바이너리 blob을 획득해야 할 수도 있습니다. Android 8.0은 SBC 외에 다음과 같은 코덱을 지원합니다.

  • AAC
  • aptX
  • aptX HD
  • LDAC

기기 제조업체는 기기에서 처음 사용하려고 시도하는 코덱을 선택할 수 있습니다. res/values/config.xml에서 다음 값을 변경하여 코덱 우선순위를 설정하세요.

      <!-- Configuring priorities of A2DP source codecs. Larger value means
              higher priority. Value -1 means the codec is disabled.
              Value 0 is reserved and should not be used here. Enabled codecs
              should have priorities in the interval [1, 999999], and each
              priority value should be unique. -->
            <integer name="a2dp_source_codec_priority_sbc">1001</integer>
            <integer name="a2dp_source_codec_priority_aac">2001</integer>
            <integer name="a2dp_source_codec_priority_aptx">3001</integer>
            <integer name="a2dp_source_codec_priority_aptx_hd">4001</integer>
            <integer name="a2dp_source_codec_priority_ldac">5001</integer>
          

LDAC 인증

Android 오픈소스 프로젝트에는 Sony의 LDAC 코덱이 포함되어 있으므로 이 코덱을 위한 별도의 라이선스나 blob이 필요하지 않습니다. LDAC 코덱을 기기에 통합하려면 Sony에 등록하고 LDAC 인증 절차를 따르세요.

LDAC 인증 웹사이트에는 사양 및 운영 핸드북과 같은 LDAC 관련 문서가 있습니다. LDAC 사이트에는 모바일 및 태블릿 기기의 유효성 검사 및 상호운용성 테스트도 제공됩니다. LDAC 인증을 완료하려면 통과 테스트 결과를 Sony에 전송하세요.

UI 기능

Android 8.0은 추가 코덱 지원 기능과 함께 고화질(HD) 블루투스 오디오 코덱을 사용 중지할 수 있는 사용자 표시 설정을 제공합니다.

  1. 설정 > 연결된 기기 > 블루투스로 이동합니다.
  2. 코덱을 사용 중지하려는 싱크 옆의 톱니바퀴 아이콘을 탭합니다.
  3. HD 오디오 체크박스를 선택 해제합니다.

설정을 맞춤설정하는 기기 제조업체는 사용자가 HD 코덱을 사용 중지할 수 있는 방법을 구현해야 합니다.

메시징

블루투스를 통한 메시징 기능을 사용하여 사용자는 원격 기기에서 SMS 메시지를 읽고 둘러보고 작성할 수 있습니다. 이 기능은 스마트폰을 차량용 인포테인먼트 시스템에 연결할 때 주로 사용됩니다.

텔레포니

블루투스 텔레포니 서비스를 사용하면 사용자가 스마트폰에서 다른 블루투스 기기로 통화를 스트리밍하고 연락처를 동기화할 수 있습니다. 이러한 기능은 운전 중 핸즈프리 통화에 주로 사용됩니다.

Android 8.0에서 블루투스는 대역 내 벨소리를 지원합니다. 블루투스를 통해 연결된 스마트폰이 수신 전화를 받으면 싱크에서 벨소리가 재생됩니다. 설정 > 시스템 > 개발자 옵션에서 대역 내 벨소리 사용 설정 토글을 선택하여 대역 내 벨소리를 사용 설정하세요.

블루투스 기능

블루투스 서비스를 구현하기 위해 블루투스 스택은 다양한 프로필과 기능을 지원합니다.

블루투스 프로필

블루투스에 사용할 수 있는 프로필은 다음과 같습니다.

기능 Android 버전
이름 설명 6.0 7.0 7.1 7.1.2 8.0
SAP SIM 액세스 프로필 1.1 1.1 1.1 1.1 1.1
MAP SMS용 메시지 액세스 프로필 1.2 1.2 1.2 1.2 1.2
OPP 객체 푸시 프로필 1.1 1.1 1.1 1.1 1.2
L2CAP를 통한 OBEX 논리적 링크 제어 및 조정 프로토콜을 통한 객체 교환
HFP 오디오 게이트웨이 핸즈프리 프로필 1.6 1.6 1.7 1.7 1.7
HSP 헤드셋 프로필 1.2 1.2 1.2 1.2 1.2
A2DP 고급 오디오 배포 프로필 1.2 1.2 1.2 1.2 1.2
AVRCP 오디오/동영상 리모컨 프로필 1.3 1.3 1.3 1.3 1.4
HID 휴먼 인터페이스 기기 프로필 1.0 1.0 1.0 1.0 1.0
PBAP 전화번호부 액세스 프로필 1.1.1 1.1.1 1.1.1 1.1.1 1.2
HDP 건강 관리 기기 프로필 1.0 1.0 1.1 1.1 1.1
SPP 직렬 포트 프로필 1.2 1.2 1.2 1.2 1.2
PAN/BNEP 개인 영역 네트워킹 프로필/블루투스 네트워크 캡슐화 프로토콜 1.0 1.0 1.0 1.0 1.0
DIP 기기 ID 프로필 1.3 1.3 1.3 1.3 1.3
HOGP 1.0 GATT를 통한 HID
HD 오디오1 위의 '고급 오디오 코덱'을 참조하세요. 아니요 아니요 아니요 아니요

1 HD 오디오는 소스와 싱크 모두에서 기기 성능에 따라 다르게 구현됩니다.

저전력 블루투스 기능

이 기능은 BLE에 사용할 수 있습니다.

기능 Android 버전
이름 6.0 7.0 7.1 7.1.2 8.0
BR/EDR 보안 연결 4.1 4.1 4.1 4.1 5.0
LE 개인정보 보호 4.2 4.2 4.2 4.2 5.0
LE 보안 연결 4.2 4.2 4.2 4.2 5.0
데이터 패킷 확장 4.2 4.2 4.2 4.2 5.0
32비트 UUID
이중 모드 LE 중앙/주변기기
LE 주변기기 모드
Google HCI 요구사항
LE 연결 지향 채널 아니요 아니요 아니요 아니요 아니요