藍牙服務

透過藍牙,裝置可以傳輸可用於音訊、訊息和電話等互動服務的資料。 include/hardware/bluetooth.h 中列出了用於不同服務的藍牙設定檔。

音訊

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

絕對音量控制

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

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

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

進階音訊轉碼器

在 Android 8.0 中,使用進階音訊散布設定檔 (A2DP) 的裝置可支援其他音訊編解碼器。藍牙堆疊支援音訊轉碼器協商,以便裝置連線至遠端音訊接收端。這項協商程序會選取傳送端和接收端皆支援的最佳編解碼,以提供高品質的音訊。選取後,所有音訊都會透過所選編碼器進行路由,然後傳送至接收器。

實作

搭載 Android 8.0 且支援 A2DP 的裝置會自動獲得額外的編解碼支援。裝置製造商可能需要為某些專屬音訊編解碼取得個別授權和二進位檔 Blob。除了 SBC,Android 8.0 也支援下列轉碼器:

  • 進階音訊編碼
  • 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) 藍牙音訊轉碼器。

  1. 依序前往「設定」 >「已連結的裝置」 >「藍牙」
  2. 輕觸要停用編解碼的接收器旁邊的齒輪圖示。
  3. 取消勾選「HD Audio」核取方塊。

自訂設定的裝置製造商應為使用者提供停用 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 透過邏輯連結控制和適應通訊協定交換物件
HFP Audio Gateway 免持設定 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 Audio1 請參閱上方的「進階音訊編解碼」

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 連線導向通道