Android 14 推出了 API 更新,同时伴随着蓝牙低功耗音频 (LEA) 设备(包括助听器)音频路由行为的用户体验变化。这些变化影响了 VoIP 应用管理音频输出选择的方式。本文档为开发者提供了必要信息,帮助他们使 VoIP 应用适应这些变化并确保流畅的用户体验。
Android 14 中的行为变更
- LEA 设备路由:LEA 设备现已在 Pixel 手机和 AOSP 上默认启用。但是,为了主动识别和选择 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(如下所列)。