我正在开发一个扫描特定外围设备的应用程序,发现它应该发送少量数据。
应用程序在前台和后台运行。我还在plist中添加了这段代码
UIBackgroundModes 蓝牙中心 当iPhone被锁定且外围设备开始广告时,它不会调用
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
我做了一些研究但找不到答案。
感谢任何帮助。
由于
答案 0 :(得分:0)
保存发现的CBPeripheral
实例。
var activePeripheral: CBPeripheral!
或将其添加到数组中。如果您发现了多个外围设备。
var knownPeripherals = [CBPeripheral]()
通过这种方式,您可以重新连接到您需要的任何CBPeripheral
(如果可用,显然)。
当外围设备断开连接时调用此委托方法optional func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error error: NSError?)
。您可以尝试重新连接到外围设备,尝试使用它。
最后,您应该检查performing long-term actions in background的Apple参考。
希望它有所帮助!