Android Telecom库旨在简化语音和视频应用的创建

Telecom Jetpack 库简介

Telecom Jetpack 库目前处于 Alpha 版本,旨在简化 Android 开发者创建语音和/或视频通话应用的过程。该库提供了多个 API,支持常见功能,如接听/拒接、音频路由等。

主要功能

  1. 自动声明前台服务:该库会自动声明使用的前台服务,开发者无需显式声明,以符合 Android 14 引入的新隐私要求。
  2. 无缝通话管理:当用户离开应用时,库会确保通话不被中断。
  3. 智能手表支持:提供 API 处理智能手表上的用户操作,如接听、拒接、挂断和静音,并更新手表显示的通话信息。还支持处理在进行中的通话时新来电的情况,允许用户保持当前通话。
  4. 音频路由管理:应用无需使用音频管理器来跟踪设备音频状态或获取可用音频设备列表。库可以列出所有可用的音频流端点,支持蓝牙音频设备。

迁移与更新

  1. 新类 CallsManager:引入了新的 CallsManager 类,取代了之前非 Jetpack 版本中的 ConnectionService 类。开发者需要进行特定迁移以充分利用新库的所有优势。
  2. 迁移建议:从 ConnectionService 迁移到 CallManager 相对简单,但不仅仅是命名空间的更改。可以将 CallManager 视为 ConnectionServiceCallControlScope 视为 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。

阅读 46
0 条评论