核心蓝牙发现服务:设备已连接,但收到错误“未连接”

时间:2017-12-20 10:24:39

标签: ios objective-c ios11 core-bluetooth

我正在使用蓝牙设备,我需要详细说明:

  • 连接
  • 发现服务
  • 发现特征
  • 获取一些数据
  • 断开

它是连续完成并且完美运行,除了几分钟后我开始收到奇怪的结果,因为peripheral:didDiscoverServices:给了我这些日志:

Peripheral state: 2
Error: Error Domain=CBErrorDomain Code=3 "The specified device is not connected." UserInfo={NSLocalizedDescription=The specified device is not connected.}

用于获取日志的代码:

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error {

    NSLog(@"Peripheral state: %li", (long)peripheral.stat);
    NSLog(@"Error: %@", error);
}

我尝试检查竞争条件,但所有回调都在同一队列上接收,只有1个操作处于活动状态(下一个操作在成功断开连接后启动)。

阅读the documentation,如果出现问题,可能会收到错误,但外围设备如何处于已连接未连接状态在同一时间?

我的想法:

  • 我的设备有问题。
  • CB组件处理请求的方式存在内部限制
  • CB中的错误
  • 这很好,但没有很好的记录(在这种情况下,如何处理它)

感谢您的帮助!

0 个答案:

没有答案