产品资讯

利用 Telecom 的最新 Alpha 版,为您的 VoIP 应用体验带来原生可见性

阅读用时:2 分钟
Nataraj K R
开发者关系工程师,Android 开发者工程

Jetpack Telecom 库的初始版本引入了 CallsManager,取代了旧版 ConnectionService API,以简化 VoIP 集成。CallsManager 可简化通话生命周期管理和音频路由,同时支持与智能手表、蓝牙设备和 Android Auto 等远程界面进行互动。此外,它还支持通话扩展功能,可提供更丰富的功能,例如参与者处理、自定义图标、通话静音和远程界面上的会议摘要,同时保持向后兼容性,最低可兼容到 Android O(API 级别 26)。

在此基础上,Jetpack Telecom v1.1.0 为第三方 VoIP 应用带来了原生级可见性和便利性。最新版本引入了强大的新功能,包括统一的通话记录、通话记录排除和原生回拨功能,让用户能够比以往更顺畅地管理通话。

下面详细介绍一下新功能,以及如何在应用中实现这些功能。

弥合拨号器差距:统一的通话记录和回拨

以前,用户必须打开各个第三方应用才能查看 VoIP 通话记录或回拨未接电话。借助新的集成式通话记录功能,系统拨号器应用现在可以直接显示来自第三方 VoIP 应用的通话记录。

更棒的是,用户现在可以直接从原生系统拨号器发起对 VoIP 联系人的回拨,从而简化通信体验。

工作方式

如需选择启用此功能,请执行以下操作:

  1. 注册回调:VoIP 应用必须注册新的受系统保护的 intent:TelecomManager.ACTION_CALL_BACK
  2. 记录通话:使用 TelecomManager.addCall(或相关的 Jetpack API)确保系统自动记录通话。
  3. 管理通话 ID:注册通话时,CallControlScope.getCallId 会提供一个唯一的 UUID。系统拨号器在创建回调 intent 时会使用此确切的 TelecomManager.EXTRA_UUID
  4. 发起回拨:您的应用必须存储和管理与此 UUID 关联的通话详细信息。当系统拨号器使用 EXTRA_UUID 触发回调 intent 时,您的应用可以无缝解析 ID 并使用正确的详细信息发起通话。
integrated_call_log.png

精细控制:排除通话记录

我们知道,并非所有 VoIP 通话都应显示在系统的原生拨号器历史记录中。无论是出于隐私原因、临时通信还是应用特定的行为,您都需要控制显示的内容。

为解决此问题,我们推出了通话记录排除功能。您现在可以通过在 CallAttributesCompat 中将 isLogExcluded 布尔值设置为 true,来防止特定通话记录到系统通话日志中。配置此标志后,通话将完全隐藏在系统日志中,并且原生拨号器不会显示该通话。

有关兼容性的重要说明

这些集成式日志记录和回调功能适用于搭载 Android 16.1(SDK 36.1)及更高版本的设备。如需使用 Android SDK 36.1 编译应用,请参阅此处

使用入门

我们鼓励开发者测试这些集成,并探索统一的通话记录和回拨功能如何改善 VoIP 应用的日常用户体验。

为了帮助您开始使用这些 API 并了解它们的实际应用,我们制作了一个演示新集成的示例应用。

请查看版本说明文档,立即开始实现这些功能!

注意:虽然 Jetpack Telecom v1.1.0 API 可用于集成,但系统拨号器呈现原生通话记录的功能正在分阶段推出,首先从 Google Meet 开始。为了防范垃圾信息,原生拨号器会利用安全的软件包许可名单来控制 VoIP 显示。为了在本地测试回调和日志记录实现,我们建议使用开源的 Telecom Sample Dialer 应用作为模拟器环境。

作者:

继续阅读