Google推出Telecom Jetpack库,让Android通话应用创建更简单

Google推出Telecom Jetpack库,让Android通话应用创建更简单

Telecom Jetpack库的最新Alpha版本已经推出。该库提供了多个API,以简化Android开发者创建语音和/或视频通话应用程序的过程,支持常见功能,例如接听/拒绝、音频路由等等。

https://developer.android.google.cn/jetpack/androidx/releases/core?hl=zh-cn#core-telecom_version_10_2

处理前台服务使用情况

首先,新库会处理声明前台服务使用情况,这意味着开发者无需显式声明前台服务以符合Android 14引入的新隐私要求。此外,当用户离开应用程序时,该库还会自动确保通话不会中断。

智能手表处理用户操作

Telecom库还提供了一个API,用于智能手表处理用户操作,例如接听、拒绝、挂断和静音通话。该API可以无缝更新手表显示与通话相关的信息,并管理在正在进行另一个通话时收到新通话的情况,为用户提供保持当前通话的可能性。

音频路由

新库提供的另一个主要功能是音频路由,因此使用该库的应用程序无需使用音频管理器来跟踪设备的音频状态、获取可用音频设备列表等。库能够列出所有可用的端点,以便将音频流传输到/从蓝牙音频设备。

CallsManager类

Telecom库引入了一个新的CallsManager类,取代了之前版本库中的ConnectionService类,并需要开发者进行特定迁移以利用新库提供的所有优势。尽管从ConnectionService迁移到CallManager相对容易实现,但并非仅仅更改命名空间。可以将CallManager视为ConnectionService,将CallControlScope视为ConnectionService

以下代码段演示了如何添加具有给定属性的新通话:

kotlin 复制代码
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 area 
}

据Google表示,新库将在未来几个月内推出许多新功能,并与Android O(API级别26)向后兼容。如果您有兴趣使用该库创建Android VoIP应用程序,则最好从Google的官方示例应用程序开始,以了解如何使用各种API。

https://github.com/android/platform-samples

参考

https://github.com/android/platform-samples/blob/main/samples/connectivity/telecom

https://developer.android.google.cn/develop/connectivity/telecom?hl=zh-cn

相关推荐
Winston Wood2 小时前
Android Parcelable和Serializable的区别与联系
android·序列化
清风徐来辽2 小时前
Android 项目模型配置管理
android
帅得不敢出门2 小时前
Gradle命令编译Android Studio工程项目并签名
android·ide·android studio·gradlew
problc3 小时前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter
帅得不敢出门13 小时前
安卓设备adb执行AT指令控制电话卡
android·adb·sim卡·at指令·电话卡
我又来搬代码了15 小时前
【Android】使用productFlavors构建多个变体
android
德育处主任16 小时前
Mac和安卓手机互传文件(ADB)
android·macos
芦半山16 小时前
Android“引用们”的底层原理
android·java
迃-幵17 小时前
力扣:225 用队列实现栈
android·javascript·leetcode
大风起兮云飞扬丶17 小时前
Android——从相机/相册获取图片
android