BLE bluetoothgattcallback 回调很慢


转自知乎


我猜原因有可能是 手机是支持BT和BLE双模 一般都这样
BT的page scan是周期性在后台运作的
一般情况下的经验值是每1.28sec 长收21ms 大概是这样的周期 MTK的芯片估计因为想降功耗的原因 这个周期会拉长
BLE的connect interval和BT的 page scan一定会撞上
一般芯片设计中在这种BT和BLE共存时 都会有一些arbitration的工作 BLE data channel上的数据难免会有一些被丢弃
其他的影响那就是跟芯片的实现相关了 没有更多的信息 无法继续推测了
当然 你可以做一个小的实验 可以来证实一下我的推测
将蓝牙可见性的时间设置很长 可以始终可见 即将BT的 inquiry scan也打开了
inquiry scan跟page scan的过程非常相似 经验值也是每1.28sec 长收21ms 然后你也一样的进行BLE的传输测试 看一下丢包概率是否有增加 如果有增加 那说明inquiry scan的时隙占用对你的BLE造成了明显的影响 那么基本上也可以推断出来 page scan 也是有影响的 
但是page scan 是只要打开蓝牙便关不掉的 提供一个方向 不一定正确 但可以试一试 
对你的东西不了解 只能帮到这里了