藍牙服務

通過藍牙,設備可以傳輸可用於音頻、消息傳遞和電話等交互式服務的數據。用於不同服務的藍牙配置文件可以在include/hardware/bluetooth.h中找到。

聲音的

藍牙連接允許用戶在支持藍牙的設備上流式傳輸音頻。對於大多數音頻用例,Android 設備是源,而渲染設備(如揚聲器或耳機)是接收器。

絕對音量控制

在 Android 6.0 及更高版本中,Android 藍牙堆棧允許源設置絕對音量,讓用戶可以準確控制音頻音量。源設備向接收器發送未衰減的音頻和音量信息。接收端根據音量信息對音頻進行放大,讓用戶聽到準確的播放音量。

源設備還可以註冊音量通知。當使用接收器上的控件進行音量更改時,接收器會向源發送通知。這使源可以在用戶界面上準確地顯示音量信息。

絕對音量控制默認開啟。要禁用絕對音量控制,用戶可以轉到設置>系統>開發人員選項,然後選擇禁用絕對音量的切換。

高級音頻編解碼器

在 Android 8.0 中,使用高級音頻分發配置文件 (A2DP) 的設備可以支持額外的音頻編解碼器。當設備連接到遠程音頻接收器時,藍牙堆棧支持音頻編解碼器協商。此協商選擇發送方和接收方都支持的最佳編解碼器以提供高質量的音頻。選擇後,所有音頻都通過選定的編碼器路由,然後發送到接收器。

執行

運行 Android 8.0 且支持 A2DP 的設備會自動獲得額外的編解碼器支持。設備製造商可能需要為某些專有音頻編解碼器獲取單獨的許可證和二進制 blob。除了 SBC,Android 8.0 還支持以下編解碼器:

  • AAC
  • 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 開源項目包括 Sony 的 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
歐普對象推送配置文件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
高密度板健康設備配置文件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隱藏在 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 面向連接的通道