藍牙服務

透過藍牙,裝置可以傳輸可用於互動式服務(例如音訊、訊息傳遞和電話)的資料。用於不同服務的藍牙設定檔可以在include/hardware/bluetooth.h中找到。

聲音的

藍牙連接允許用戶在支援藍牙的裝置上傳輸音訊。對於大多數音訊用例,Android 裝置是來源,渲染裝置(例如揚聲器或耳機)是接收器。

絕對音量控制

在 Android 6.0 及更高版本中,Android 藍牙堆疊允許來源設定絕對音量,使用戶能夠準確控制音訊音量。來源設備將未衰減的音訊和音量資訊傳送到接收器。然後接收器根據音量資訊放大音頻,以便用戶聽到準確的播放音量。

來源設備還可以註冊音量通知。當透過接收器上的控制進行音量變更時,接收器會向來源發送通知。這使得來源可以在使用者介面上準確地顯示音量資訊。

絕對音量控制預設為開啟。若要停用絕對音量控制,使用者可以前往「設定」 > “系統”> “開發者選項” ,然後選擇「停用絕對音量」開關。

高級音訊編解碼器

在 Android 8.0 中,使用進階音訊分發設定檔 (A2DP) 的裝置可以支援其他音訊編解碼器。當裝置連接到遠端音訊接收器時,藍牙堆疊支援音訊編解碼器協商。此協商選擇發送方和接收方都支援的最佳編解碼器,以提供高品質的音訊。選擇後,所有音訊都透過所選編碼器路由,然後發送到接收器。

執行

運行支援 A2DP 的 Android 8.0 的裝置會自動獲得額外的編解碼器支援。設備製造商可能需要為某些專有音訊編解碼器取得單獨的授權和二進位 blob。除了 SBC 之外,Android 8.0 還支援以下編解碼器:

  • 亞克力
  • aptX
  • aptX高清
  • 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 開源專案包含適用於索尼 LDAC 編解碼器的編碼器,因此不需要索尼的單獨授權或 blob。若要將 LDAC 編解碼器整合到您的裝置中,請向 Sony 註冊並遵循LDAC 認證流程

LDAC認證網站上有關於LDAC的文檔,例如規格和操作手冊。 LDAC 站點還提供針對行動和平板電腦設備的驗證和互通性測試。將通過的測試結果發送給索尼以完成 LDAC 認證。

使用者介面功能

除了額外的編解碼器支援之外,Android 8.0 還提供面向使用者的設定來停用高清 (HD) 藍牙音訊編解碼器。

  1. 導航至設定>連接的裝置>藍牙
  2. 點選要停用編解碼器的接收器旁的齒輪圖示。
  3. 取消選取高清音訊複選框。

自訂設定的裝置製造商應該為使用者提供停用高清編解碼器的方法。

訊息傳遞

透過藍牙傳送訊息,使用者可以從遠端裝置讀取、瀏覽和撰寫 SMS 訊息。將手機連接到車載資訊娛樂系統時通常會使用此功能。

電話

藍牙電話服務可讓用戶將通話串流並將聯絡人從手機同步到另一台藍牙裝置。這些功能通常用於駕駛時的免持通話。

在Android 8.0中,藍牙支援帶內鈴聲。當透過藍牙連接的手機收到來電時,接收器上將播放鈴聲。透過選擇啟用帶內鈴聲的開關,在「設定」 > “系統” > “開發者選項”啟用帶內鈴聲

藍牙功能

為了實現藍牙服務,藍牙堆疊支援各種設定檔和功能。

藍牙設定檔

這些設定檔可用於藍牙:

特徵安卓版本
姓名描述6.0 7.0 7.1 7.1.2 8.0
樹液SIM 卡存取設定檔1.1 1.1 1.1 1.1 1.1
地圖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
熱休克蛋白耳機簡介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
高壓氣體放電管人機介面設備設定檔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
潘/BNEP個人區域網路設定檔/藍牙網路封裝協議1.0 1.0 1.0 1.0 1.0
設備 ID 設定文件1.3 1.3 1.3 1.3 1.3
HOGP 1.0 HID 優於 GATT是的是的是的是的是的
高清音訊1請參閱上面的“高級音訊編解碼器”是的

1高​​清音訊的實現取決於設備功能,包括來源和接收器。

藍牙低功耗特性

這些功能可用於 BLE:

特徵安卓版本
姓名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 週邊模式是的是的是的是的是的
谷歌人機互動要求是的是的是的是的是的
LE 面向連線的頻道