使用corebluetooth库成功连接我的BLE设备,并在我的ios应用程序上为其提供某些服务的通知值。在前景和后台模式下工作正常。
我目前将设备的标识符保存到UserDefaults,并且需要始终将ios设备连接到设备。
问题:使用ios应用程序状态进行corebluetooth实施的最佳做法是什么?具体做法是:
最后:
是否有必要在单例类中实现corebluetooth库,以确保应用只使用一个蓝牙管理器连接到设备?
答案 0 :(得分:5)
以下是一些建议和最佳(我可以看到它们)的做法。这些不是一成不变的:
最后:没有必要将其实现为单身人士。虽然只有一个对象可以处理所有蓝牙连接,但非常方便。所以,我会说,单身是个不错的选择。
一般来说,你必须考虑两种情况:
func centralManager(_ central: CBCentralManager, willRestoreState dict: [String : Any])
函数。在此功能中,您应该尝试重新连接到蓝牙设备。当应用程序在前台被系统杀死时,有时(根据我的经验)将调用相同的函数。所以你应该做同样的事情。如果没有调用 - 请参阅以下段落。UserDefaults
(这是正确的),您应该拥有所有需要的属性。对于任何其他情况 - 由于蓝牙关闭(在设备上或在手机上)或由于设备超出范围而断开连接,系统会处理重新连接。基本上,这里没什么可做的。
再一次,所有这一切都不是刻在石头上。这就是我实现它的方式,它运行正常。