BLE AUDIO显示“已连接(无手机或媒体信号)”问题二分析续

背景

之前在https://blog.csdn.net/Jzj1234555/article/details/142518444?spm=1001.2014.3001.5501 这个帖子介绍了调试LE AUDIO碰到的手机UI界面显示“连接成功但听不到音乐的问题”,原本以为是手机创建L2CAP CB CONNECTION的时候credit给的太小,通过加大credit也许能解决这个问题,于是我把credit从原来的3个改成了20个,足够大了吧,以为能解决,结果发现事与愿违,依然是”已连接(无手机或媒体信号)“,于是乎继续巴拉巴拉,看看到底问题出在哪里。

问题分析

  • 首先查看手机的logcat log,发现依然是credit不够导致手机发包不出去:在这里插入图片描述
    从上面logcat log看问题发生在14:52:48.532 ,然后查看手机的HCI btsnoop log:
    在这里插入图片描述

  • 最左边蓝色方格的是L2CAP CB创建,也就是packet #3280,能看到耳机回复了初始化credit为20,DCID == 0x4E。

  • 红色框框里是手机在DCID 0x4E上的ATT操作,每一个包都需要申请一个credit,数一下一共有20个,从packet #3281到#3386。 可以看到申请的第20个credit packet #3386的时间点是14:52:48.503,logcat显示问题点在14:52:48.532,所以比较吻合。

  • 红色方格表示耳机在DCID 0x4E上的credit update(packet #3391),也就是说20个credit耗完了,耳机才更新credit,告诉手机,我还有20个buffer可以用。

总结

综上所述,耳机只有在所有credit耗完才会更新credit,如果手机在申请不到credit,就把数据包丢弃,而不是存储起来等待耳机更新了credit之后择机再发送的话,就会有问题。当然耳机这边也是有问题的,不应该等所有credit耗尽才更新,而应该是自己设置好处理了多少个credit之后,能够及时更新反馈给手机(比如耳机的credit 为6,处理完3个credit就更新给手机)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tim_Jiangzj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值