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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Packet Tracer - Configuring Extended ACLs - Scenario 1

Packet Tracer - 配置扩展访问控制列表 - 场景1 地址表 目标 第一部分:配置、应用并验证一个编号扩展访问控制列表(Extended ACL) 第二部分:配置、应用并验证一个命名扩展访问控制列表(Extended Named ACL&#xff…

Python电能质量扰动信号分类(五)基于CNN-Transformer的一维信号分类模型

目录 往期精彩内容: 引言 1 数据集制作与加载 1.1 导入数据 1.2 制作数据集 2 CNN-Transformer分类模型和超参数选取 2.1定义CNN-Transformer分类模型 2.2 设置参数,训练模型 3 模型评估 3.1 准确率、精确率、召回率、F1 Score 3.2 十分类混淆…

IDEA—初始化配置

注:以下红框圈的部分,均为已设置好的 外观与行为 编辑器 高级设置 按两次 shift 弹出提示问题解决

数据仓库 Apache Hive

一、数据分析 1、数据仓库 数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持&#xff08…

如何在Spring Boot中使用EhCache缓存

1、EhCache介绍 在查询数据的时候,数据大多来自于数据库,我们会基于SQL语句与数据库交互,数据库一般会基于本地磁盘IO将数据读取到内存,返回给Java服务端,我们再将数据响应给前端,做数据展示。 但是MySQL…

重磅!OpenAI正式发布,自定义ChatGPT商店!

1月11日凌晨,OpenAI在官网正式发布了,自定义GPT商店,可以帮助用户找到目前最好用、流行的自定义ChatGPT助手。 在2024年第一季度,OpenAI将启动GPT 开发者收入计划。首先,美国地区的开发者将根据用户对其 GPT 的使用情…

Android音视频: 引入FFmpeg

本文你可以了解到 本文将介绍如何将上一篇文章编译出来的 FFmpeg so 库,引入到 Android 工程中,并验证 so 是否可以正常使用。 一、开启 Android 原生 C/C 支持 在过去,通常使用 makefile 的方式在项目中引入 C/C 代码支持,随…

HTML5+CSS3+JS小实例:音频可视化

实例:音频可视化 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><m…

SQL语句详解二-DDL(数据定义语言)

文章目录 操作数据库创建&#xff1a;Create查询&#xff1a;Retrieve修改&#xff1a;Update删除&#xff1a;Delete使用数据库 操作表常见的几种数据类型创建&#xff1a;Create复制表 查询&#xff1a;Retrieve修改&#xff1a;Update删除&#xff1a;Delete 操作数据库 创…

【Linux】Linux系统编程——ls命令

【Linux】Linux 系统编程——ls 命令 1.命令概述 ls 命令是 Linux 和其他类 Unix 操作系统中最常用的命令之一。ls 命令是英文单词 list 的缩写&#xff0c;正如 list 的意思&#xff0c;ls 命令用于列出文件系统中的文件和目录。使用此命令&#xff0c;用户可以查看目录中的…

封装数据访问通用类DbHelper

为什么要封装通用类&#xff1f; 数据交互&#xff1a;增上改查 相同的事情&#xff1a;连接 T-SQL命令&#xff0c;Command 执行命令&#xff0c;选择执行方式 得到相应结果 关闭连接 将一些从重复的逻辑进行封装&#xff0c;达到通用的目的 提高复用率…

高防ip是什么,防护效果好吗

DDoS攻击是互联网最常见的网络攻击方式之一&#xff0c;通过大量虚假流量对目标服务器进行攻击&#xff0c;堵塞网络耗尽服务器性能&#xff0c;导致服务器崩溃&#xff0c;真正的用户无法访问。以前企业常用的防御手段就是高防服务器&#xff0c;也就是硬防&#xff0c;但由于…

C++采集亚马逊amazon产品数据教程

最近亚马逊电商非常火爆&#xff0c;今天我将用C语言写一个亚马逊商品数据的爬虫程序&#xff0c;只要是用来收集一些产品相关信息。例如产品自身特性以及产品所对应的销量&#xff0c;为了后期布局亚马逊做一些参考&#xff0c;提供数据支持&#xff0c;同时另外我也会用C语言…

鸿蒙Harmony--LocalStorage--页面级UI状态存储详解

走的太急疼的是脚&#xff0c;逼的太紧累的是心&#xff0c;很多时候&#xff0c;慢一点也没关系&#xff0c;多给自己一些耐心和等待&#xff0c;保持热爱&#xff0c;当下即是未来&#xff0c;生活自有安排! 目录 一&#xff0c;定义 二&#xff0c;LocalStorageProp定义 三…

Docker 的工作原理及安装步骤【云原生】

文章目录 1. Docker 的工作原理2. Docker 与虚拟机3. Docker 架构4. 安装 Docker5. 配置镜像加速 1. Docker 的工作原理 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署会碰到一些问题&#xff1a; ① 依赖关系复杂&#xff0c;容易出现兼容性问题&#xff1…

【WPF.NET开发】在用户控件上启用拖放功能

本文内容 创建应用程序项目向项目添加新的用户控件向主窗口添加用户控件在用户控件中实现拖动源事件向用户提供反馈在用户控件中实现拖放目标事件使面板能够接收放置的数据 在本演练中&#xff0c;将创建一个表示圆形的自定义 WPF UserControl。 你将在该控件上实现可通过拖放…

C++力扣题目112,113--路径总和,路径总和II

112路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 是…

PHP面试小结(20240108)

PHP 部分 1. php的包管理工具是如何实现自动加载的 换句话问&#xff1a;composer 实现原理是什么&#xff1f;spl_autoload_register() 首先&#xff0c;Composer 是 PHP 的一个包管理和包依赖管理的工具 &#xff0c; 打开安装之后生成的 "vendor" 文件, 里面有个…

【微信小程序】工具构建npm不生效问题

直接终端输入 npm init -y npm install express 会重新初始化package.json和重新刷新node_modules包 然后直接点npm构建 构建出来这个就完事了

机器学习_实战框架

文章目录 介绍机器学习的实战框架1.定义问题2.收集数据和预处理(1).收集数据(2).数据可视化(3).数据清洗(4).特征工程(5).构建特征集和标签集(6).拆分训练集、验证集和测试集。 3.选择算法并建立模型4.训练模型5.模型的评估和优化 介绍机器学习的实战框架 一个机器学习项目从开…