Android 14 引入了 API 更新,并伴随用户体验更改了蓝牙 LE 音频 (LEA) 设备(包括助听器)的音频路由行为。这些更改会影响 VoIP 应用如何管理音频输出选择。本文档为开发者提供了必要的信息,以便他们能够使自己的 VoIP 应用适应这些更改,并确保无缝的用户体验。
Android 14 中的行为变化
- LEA 设备路由:LEA 设备现在在 Pixel 手机和 AOSP 上默认启用。但是,要主动识别并选择 LEA 设备作为音频输出,应用必须使用 API 级别 31 中引入的新 API。
- 助听器路由:以前,即使用户明确选择了耳机,音频也会始终默认为助听器。在 Android 14 中,助听器现在作为可用的音频输出选项之一呈现,需要用户明确选择。
更改的理由
- 在 Android 12 之前,没有 API 可以明确地将助听器用于通话,导致连接后音频始终默认为助听器。
- 这使得用户难以在不断开助听器连接的情况下从助听器切换到耳机。
- 蓝牙 LE 音频耳机也存在相同的问题。
为了解决这些挑战,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(如下所列)。