杰理可视化SDK-手机三方通话控制

杰理可视化SDK-手机三方通话控制

手机三方通话功能是手机常用的功能之一。本篇文章简单介绍了杰理可视化SDK在蓝牙耳机应用中,当手机存在三方通话来电或正在进行三方通话时,蓝牙耳机如何实现对手机三方通话的控制操作,包括状态获取和处理等内容。

手机三方通话功能

首先需要了解一下什么是手机的三方通话功能。手机三方通话功能是指在手机通话过程中,用户可以在不中断当前通话的情况下,拨打或接听第三方的电话。三方通话功能是建立在呼叫等待与保持基础上的一项新业务。呼叫等待是指当用户正在通话时,如果有第三方来电,手机会提醒用户有新的来电等待;呼叫保持则是指用户可以暂时保持当前通话,去接听或拨打其他电话。部分手机可能需要用户主动开通呼叫等待、呼叫保持和三方通话功能。如果用户发现无法使用三方通话,可以联系运营商或查看手机设置。

总的来说,三方通话功能需要电话运营商开通或手机支持,如下图三方通话功能演示。

杰理SDK三方通话控制

SDK三方通话状态获取

SDK代码中通常使用bt_get_call_status()函数来获取当前蓝牙电话的状态。

通过BT_CALL_IND_STA枚举值可以看到获取到的蓝牙电话状态并不能指示三方通话的通话状态。

这时需要使用获取第二个通话状态的函数get_second_call_status()函数,这个函数在杰理蓝牙库中有定义,用户可以在外部自行声明使用。get_second_call_status()外部函数,用于获取第二个通话的状态。这个函数通常用于蓝牙三方通话功能的实现中,特别是在处理多通话场景时,能够获取第二个通话的状态信息。在蓝牙三方通话功能中,get_second_call_status()函数的作用是获取第二个通话的状态信息。通过调用这个函数,可以获取到第二个通话的相关状态,从而实现对第二个通话的管理和控制。这对于实现复杂的通话功能非常有用,特别是在需要同时处理多个通话的情况下。

如下图,在使用时手动添加get_second_call_status()函数声明。

get_second_call_status()函数返回值的含义如上。一般会使用到SECOND_CALL_IN以及SECOND_CALL_HOLD分别获取到手机是否三方通话打入以及三方通话保持状态。

SDK三方通话处理

SDK有了以上获取到三方通话状态的基础,蓝牙耳机便可以根据三方通话的状态做对应的三方通话处理了。比如通话过程中三方通话来电时,通过耳机上的按键拒接新来电,保持当前通话;手机已经接通三方通话了,第二通电话正在通话保持时,通过按键来实现在两个通话之间切换等UI上的操作功能。

在杰理SDK中可以通过bt_cmd_prepare()函数或bt_cmd_prepare_for_addr()函数发送对应的蓝牙控制命令以达到控制手机通话操作的目的。发送USER_CMD_TYPE三方通话相关的枚举值的命令,可以在avctp_user.h文件中查看,如下图。

三方通话来电时:

挂断当前去接听发送USER_CTRL_HFP_THREE_WAY_ANSWER1命令;

保留当前去接听发送USER_CTRL_HFP_THREE_WAY_ANSWER2命令;

拒接三方通话来电发送USER_CTRL_HFP_THREE_WAY_REJECT命令;

三方通话进行时:

两个通话之间切换发送USER_CTRL_HFP_THREE_WAY_ANSWER2命令。

相关推荐
使二颗心免于哀伤1 小时前
《设计模式之禅》笔记摘录 - 10.装饰模式
笔记·设计模式
GalaxySinCos1 小时前
08 51单片机之串口通信
单片机·嵌入式硬件·51单片机
悠哉悠哉愿意1 小时前
【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
笔记·python·单片机·嵌入式硬件·学习·视觉检测
岩中竹2 小时前
广东省省考备考——常识:科技常识(持续更新)
笔记
Olrookie2 小时前
若依前后端分离版学习笔记(三)——表结构介绍
笔记·后端·mysql
李某学编程3 小时前
Cortex-M内核SysTick定时器介绍
stm32·单片机
李永奉3 小时前
STM32-定时器的基本定时/计数功能实现配置教程(寄存器版)
c语言·开发语言·stm32·单片机·嵌入式硬件
rannn_1114 小时前
Java学习|黑马笔记|Day23】网络编程、反射、动态代理
java·笔记·后端·学习
UQWRJ4 小时前
菜鸟教程 R语言基础运算 注释 和数据类型
笔记
糖糖单片机设计4 小时前
硬件开发_基于STM32单片机的电脑底座系统
stm32·单片机·嵌入式硬件·物联网·51单片机