我有一个与BLE产品连接的应用程序。该产品在使用时可能会断开连接,但如果蓝牙处于打开状态,它应该会在iPhone附近自动重新连接。
为了简单起见,请按一下按钮打开本产品的蓝牙。因此,用户离开BLE设备,两者都断开连接,并且当它们都打开时它们应该重新连接。但!这在我的实现中并没有真正发生。
我尝试解决此问题的方法是执行以下操作:
添加Info.plist
和bluetooth-central
的正确背景模式bluetooth-peripheral
。
除此之外,我已在options
的参数中添加CBManager
以唤醒应用程序,如果应用程序被系统杀死,并使用以下语句:
centralManager = CBCentralManager(delegate: self, queue: nil, options: [CBCentralManagerOptionRestoreIdentifierKey:identifier])
我实施了以下内容:
public func centralManager(_ central: CBCentralManager, willRestoreState dict: [String : Any]) {
print("Am I restoring?")
}
但是,当应用程序被系统杀死时,我无法测试BLE设备是否会自动重新连接。有没有正确的方法来测试这个“功能”?
除此之外,主要问题仍然存在。当我杀死应用程序时,蓝牙设置中的BLE设备已断开连接。我怎么能防止这种情况?
当我按下按钮时,我的设备正在发送一些数据,当它断开连接时,它开始搜索设备,所以我认为应该至少没问题。