【问题标题】:CoreBluetooth: Unable to reconnect to device after calling cancelConnection()CoreBluetooth:调用 cancelConnection() 后无法重新连接到设备
【发布时间】:2022-01-22 10:47:27
【问题描述】:

我正在编写一个 iOS 应用程序,它将连接到蓝牙心率设备。会有多个屏幕,其中一些需要蓝牙连接,而另一些则不需要。

我已经设置好了,所以我有一个 BTManager 类,它是一个单例。它包含对单个 CBCentralManager 的引用,并且还具有连接的外围设备等的其他实例变量。

我让它工作,这样当应用程序加载需要 HR 的视图时,它会在我的使用 retrievePeripherals(withIdentifiers: uuids) 的单例上调用 connect() 方法。当视图卸载时,它会调用:cancelPeripheralConnection(self.hrPeripheral!)

到目前为止,所有这些都有效,但是...

计划是在我重新进入视图时调用相同的connect() 方法,但我发现一旦我调用了cancelPeripheralConnection,它就永远无法再次连接到该外围设备而不重新启动应用程序。

CBCentralManager 的预期生命周期是什么?我应该销毁它并重新创建它吗?任何其他想法为什么这不起作用?

【问题讨论】:

  • 我确实注意到,如果我在 UI 中连接一个按钮以便我可以重试 connect() 调用,它最终会再次连接。或许我需要稍等片刻才能尝试重新连接?

标签: ios core-bluetooth


【解决方案1】:

我通过输入重试逻辑解决了这个问题。我重试连接 5 次,尝试之间的延迟可配置。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 2013-06-27
相关资源
最近更新 更多