当iPhone被锁定时,CBCentralManager不会调用didDiscoverPeripheral方法

时间:2015-06-16 15:04:23

标签: ios iphone cbcentralmanager ios-bluetooth cbperipheralmanager

我正在开发一个扫描特定外围设备的应用程序,发现它应该发送少量数据。

应用程序在前台和后台运行。我还在plist中添加了这段代码

UIBackgroundModes     蓝牙中心 当iPhone被锁定且外围设备开始广告时,它不会调用

func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {

我做了一些研究但找不到答案。

感谢任何帮助。

由于

1 个答案:

答案 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参考。

希望它有所帮助!