【发布时间】: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