使用BLE在后台模式下重新连接Mac和iPhone



我实现Mac应用程序作为中心,iPhone应用程序作为外围。

iPhone位于FOREGROUND时,Central可以在由发现的外围设备上连接/重新连接外围设备

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI

但在FOREGROUND:中连接后

  • 再次保存连接的外围设备
  • 将外围设备移动到远离中心的位置,直到断开连接
  • 然后iPhone处于背景模式(在应用程序的Info.plist文件中包含UIBackgroundModes键和蓝牙外围设备值)
  • 将外围设备移到中心附近,在完成didDiscoverPeripheral后,我通过使用保存的connectedPeripheral进行connectPeripheral重新连接。但它不稳定,有时效果很好,有时无法重新连接

请帮助我如何在后台模式下重新连接MAC和IOS。

附言:我还想知道knock应用程序如何在其介绍中做到这一点:

http://www.digitaltrends.com/cool-tech/knock-strange-new-way-unlock-mac/

http://www.theverge.com/2013/11/5/5069614/knock-iphone-app-wirelessly-unlocks-your-mac

感谢

当您失去连接时,只需在保存的外围设备上调用connect即可。它将尽快重新连接。不需要继续/重新启动扫描,但如果这样做,则使用didDiscoverPeripheral回调中返回的外围对象,而不是保存的

最新更新