Telecom Jetpack 库简介
Telecom Jetpack 库目前处于 Alpha 版本,旨在简化 Android 开发者创建语音和/或视频通话应用的过程。该库提供了多个 API,支持常见功能,如接听/拒接、音频路由等。
主要功能
- 自动声明前台服务:该库会自动声明使用的前台服务,开发者无需显式声明,以符合 Android 14 引入的新隐私要求。
- 无缝通话管理:当用户离开应用时,库会确保通话不被中断。
- 智能手表支持:提供 API 处理智能手表上的用户操作,如接听、拒接、挂断和静音,并更新手表显示的通话信息。还支持处理在进行中的通话时新来电的情况,允许用户保持当前通话。
- 音频路由管理:应用无需使用音频管理器来跟踪设备音频状态或获取可用音频设备列表。库可以列出所有可用的音频流端点,支持蓝牙音频设备。
迁移与更新
- 新类
CallsManager:引入了新的CallsManager类,取代了之前非 Jetpack 版本中的ConnectionService类。开发者需要进行特定迁移以充分利用新库的所有优势。 - 迁移建议:从
ConnectionService迁移到CallManager相对简单,但不仅仅是命名空间的更改。可以将CallManager视为ConnectionService,CallControlScope视为ConnectionService。
代码示例
以下代码片段展示了如何使用给定属性添加通话:
val attributes = CallAttributesCompat(
displayName = displayName,
address = address,
direction = CallAttributesCompat.DIRECTION_INCOMING,
callType = CallAttributesCompat.CALL_TYPE_AUDIO_CALL,
callCapabilities = (CallAttributesCompat.SUPPORTS_SET_INACTIVE
or CallAttributesCompat.SUPPORTS_STREAM
or CallAttributesCompat.SUPPORTS_TRANSFER),
)
callsManager.addCall(
attributes
) {
// Call control scope
}未来发展与兼容性
Google 表示,该库将在未来几个月内增加许多新功能,并向下兼容至 Android O(API 级别 26)。对于有兴趣使用该库创建 Android VoIP 应用的开发者,建议从 Google 的官方示例应用 开始,该示例展示了如何使用各种 API。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。