藍牙服務

裝置可透過藍牙傳輸資料,用於音訊、訊息和電話等互動式服務。如要瞭解不同服務使用的藍牙設定檔,請參閱 include/hardware/bluetooth.h

音訊

透過藍牙連線,使用者可以在支援藍牙的裝置上串流音訊。在大多數音訊使用情境中,Android 裝置是來源,而喇叭或耳機等轉譯裝置是接收器。

絕對音量控制

在 Android 6.0 以上版本中,Android 藍牙堆疊可讓來源設定絕對音量,讓使用者準確控制音量。來源裝置會將未衰減的音訊和音量資訊傳送至接收器。然後,接收器會根據音量資訊放大音訊,讓使用者聽到準確的播放音量。

來源裝置也可以註冊音量通知。當使用接收器上的控制項變更音量時,接收器會將通知傳送至來源。這樣一來,來源就能在使用者介面上準確顯示音量資訊。

絕對音量控制功能預設為開啟。使用者可以依序前往「設定」 >「系統」 >「開發人員選項」,然後選取「停用絕對音量功能」的切換按鈕,停用絕對音量控制功能。

進階音訊轉碼器

在 Android 8.0 中,使用藍牙立體聲音訊傳輸規範 (A2DP) 的裝置可以支援其他音訊轉碼器。藍牙堆疊支援音訊轉碼器協商,適用於裝置連線至遠端音訊接收器時。這項協商會選取傳送端和接收端都支援的最佳轉碼器,以提供高品質音訊。選取後,所有音訊都會透過所選編碼器傳送至接收器。

實作

搭載 Android 8.0 的裝置若支援 A2DP,就會自動取得額外的轉碼器支援。裝置製造商可能需要為部分專有音訊轉碼器取得個別授權和二進位大型物件。除了 SBC,Android 8.0 也支援下列轉碼器:

  • 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 編碼器,因此不需要 Sony 的獨立授權或 Blob。如要在裝置中整合 LDAC 轉碼器,請向 Sony 註冊,並按照 LDAC 認證程序操作。

LDAC 認證網站提供 LDAC 相關文件,例如規格和操作手冊。LDAC 網站也提供行動裝置和平板電腦的驗證和互通性測試。將通過測試的結果傳送給 Sony,完成 LDAC 認證。

UI 功能

除了支援更多轉碼器,Android 8.0 也提供使用者設定,可停用高畫質 (HD) 藍牙音訊轉碼器。使用者可以依序前往「設定」 >「已連結的裝置」 >「藍牙」,輕觸接收器旁的齒輪圖示,然後取消勾選「高音質音訊」核取方塊,即可停用高音質轉碼器。

自訂「設定」的裝置製造商應實作讓使用者停用 HD 編碼器的方法。

訊息

透過藍牙傳送訊息時,使用者可以從遠端裝置讀取、瀏覽及撰寫簡訊。將手機連線至車內資訊娛樂系統時,經常會用到這項功能。

電話通訊系統

使用者可以透過藍牙電話服務,將通話串流和聯絡人從手機同步到其他藍牙裝置。這些功能通常用於開車時的免持通話。

在 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 簡訊訊息存取設定檔 1.2 1.2 1.2 1.2 1.2
OPP 物件推送設定檔 1.1 1.1 1.1 1.1 1.2
OBEX over L2CAP OBject EXchange over Logical Link Control and Adaptation Protocol
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 Audio 請參閱「進階音訊轉碼器」。實作方式取決於來源和接收端的裝置功能。

藍牙低功耗功能

以下是 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 Privacy 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 Central/Peripheral
LE 周邊模式
Google HCI 需求條件
LE 連線導向通道