coreBluetooth报错: Error Domain=CBErrorDomain Code=6 \“The connection has timed out unexpectedly.\“

问题描述

CoreBluetooth 代理方法:

  • (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(nullable NSError *)error

断开蓝牙连接后,回调参数error为:Error Domain=CBErrorDomain Code=6 “The connection has timed out unexpectedly.” UserInfo={NSLocalizedDescription=The connection has timed out unexpectedly.}

原因

参考 connection关键参数说明
iOS设备作为主设connect过程中系统交互,connection supervision timeout参数实际查验为720ms,即72*10ms,如果当前蓝牙环境差或其他原因导致连接不稳定,超过720ms,即timeout断开;

优化

1、蓝牙协议允许从机来协商调整 connection supervision timeout 参数;

2、参考苹果官方《Accessory Design Guidelines for Apple Devices》41.6 章节规定如下:

  • Supervision Timeout from 2 seconds to 6 seconds.
  • Supervision Timeout greater than Interval Max * (Peripheral Latency + 1) * 3.

以此通过设置从机参数来优化这个报错,但是需注意的是如果timeout设置过大,容易造成假连接,请根据实际应用来灵活调整此参数;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值