Android 14 推出了 API 更新,並針對藍牙低功耗音訊 (LEA) 裝置 (包括助聽器) 的音訊路由行為,做出使用者體驗變更。這些異動影響了 VoIP 應用程式管理音訊輸出選擇的方式。本文件為開發人員提供重要資訊,協助他們根據這些變更調整自己的 VoIP 應用程式,確保提供順暢的使用者體驗。
Android 14 的行為變更
- LEA 裝置路由:Pixel 手機和 AOSP 現已預設啟用 LEA 裝置。不過,如要主動識別及選取 LEA 裝置做為音訊輸出,應用程式必須使用 API 級別 31 中導入的新 API。
- 助聽器轉送:在過去,即使使用者已明確選擇耳機,音訊一律會預設為助聽器。在 Android 14 中,助聽器現在會顯示為其中一個可用的音訊輸出選項,且需要使用者明確選取。
改變的理由
- 在 Android 12 之前,沒有任何 API 可明確使用助聽器進行通話,導致連線時音訊一律會預設為使用助聽器。
- 因此,使用者必須先將助聽器斷開,才能切換至耳機。
- 藍牙低功耗音訊耳機也出現相同問題。
為解決這些挑戰,Android 14 推出了幾項變更,讓 VoIP 應用程式能進一步控管音訊轉送,並確保藍牙配件間的行為一致。
Android 14 的主要變更
- 用於選取路徑的一般 API:Android 12 推出了
AudioManager.setCommunicationDevice
,以允許應用程式指定音訊路徑,包括助聽器和 LEA 裝置。不過,在 Android 12 和 13 中,助聽器並不會顯示為裝置,因此限制了這個 API 的實用性。 - 助聽器可見性:在 Android 14 中,助聽器現在會顯示為裝置,讓應用程式提供 UI 元素,方便使用者選取偏好的音訊輸出。
- API 淘汰項目:Android 14 已淘汰幾個與音訊轉送相關的 API。開發人員必須遷移至 API 級別 31 中推出的新 API,才能有效管理音訊輸出選項。
開發人員必須採取的行動
- 強烈建議:遷移至 Telecom Jetpack 程式庫。盡可能將 VoIP 應用程式遷移至 Telecom Jetpack 程式庫,以便簡化音訊路由管理。
- 如果無法遷移,請使用
setCommunicationDevice()
或最新的 API (如下所列)。