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

时间:2014-01-02 08:54:13

标签: macos core-bluetooth

我将Mac app设为中心,iPhone app作为外围设备。

iPhone位于外围基于外围设备的FOREGROUND时,中心可以连接/重新连接外围设备:

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

但是在连接FOREGROUND之后:

  • 再次保存连接的外围设备
  • 将外围设备远离中央,直至丢失连接
  • 然后iPhone处于BACKGROUND模式(包含UIBackgroundModes键,并在应用的Info.plist文件中包含蓝牙外设值)
  • 移动附近的中心部分,在执行了didDiscoverPeripheral后,我通过connectConnepheral与已保存的connectedPeripheral重新连接。但它不稳定,有时效果很好,有时无法重新连接。

请帮助我在MAC和IOS之间重新连接后台模式。

PS:我也想知道敲门应用程序如何在其介绍中做到这一点:

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

由于

1 个答案:

答案 0 :(得分:2)

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