我实现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
回调中返回的外围对象,而不是保存的。