BT_蓝牙电话数据包分析_拒接电话

基于Android P版本分析

通话过程协议分析

拒接电话

从AG端接听Incoming call的流程比较简单,其中包括了几个动作:来电、响铃和拒接,AG只是会通过+CIEV、RING和AT+CLCC等指令进行交互,其中通过+CIEV指令更新callsetup和call状态;

这个过程和接听来电的过程非常相似,他们之间唯一的差别在与:接听和拒接的区别,对应了两个AT+指令;

AG侧拒接和HF侧拒接基本相同;

中间和接听电话的逻辑一致,不做分析;

拒接
AT+CHUP

标准挂起AT命令,执行命令使AG终止当前活动的调用;

yaml 复制代码
Bluetooth HFP Profile
    [Role: HS - Headset (2)]
    AT Stream: AT+CHUP\r
    Command 0: +CHUP
        Command Line Prefix: AT
        Command: +CHUP (Call Hang-up)
        Type: Action Command (0x000d)
        Parameters: No

对应返回OK Response;

+CIEV: 2,0
yaml 复制代码
Bluetooth HFP Profile
    [Role: AG - Audio Gate (1)]
    AT Stream: \r\n+CIEV: 2,0\r\n
    Command 0: +CIEV
        Command: +CIEV (Indicator Events Reporting)
        Type: Response (0x003a)
        Parameters
            Indicator Index: 2
            Indicator 2: 0
  • callsetup = 0:代表了当前没在呼叫中,callsetup 状态从 1 -> 0,代表了从呼叫状态到结束呼叫状态的变化;
相关推荐
三雒14 分钟前
KMP 实战:Android 开发如何快速统一双端 IM 模块
android·ios·kotlin
星光不负赶路人7715 分钟前
深度解析:Claude Code 为什么把多 Agent 编排写进可执行代码
架构
张忠琳23 分钟前
【kubernetes v1.21】(kube-scheduler 4)kube-scheduler 内部缓存、队列与抢占机制
云原生·架构·kubernetes
数字时代全景窗30 分钟前
商业航天不是航天的分支,而是产业革命本身
架构·软件工程
轻刀快马35 分钟前
从繁琐到极简,从幻象到本质:Spring AOP 架构演进与实战避坑指南
java·spring·架构
码云骑士39 分钟前
Android SWT重启问题
android
vortex51 小时前
Polkit 架构原理深度解析
架构
heimeiyingwang1 小时前
【架构实战】Canal数据同步:MySQL数据变更实时捕获
数据库·mysql·架构
恋猫de小郭1 小时前
GSY 史上最全跨平台/架构/语言的项目,七大项目召唤「神龙」
android·前端·flutter
shuaiqinke1 小时前
【分享】一刻日记 富文本日记+图文混排+导出分享
android·craiyon