如何用蓝牙信号(BLE)唤醒iOS应用程序

DAN*_*DAN 16 ios core-bluetooth bluetooth-lowenergy cbcentralmanager ibeacon

使用带有CoreBluetooth的BLE(没有iBeacon),有没有办法在设备收到蓝牙信号时唤醒应用程序未运行的应用程序?

我正在使用redbearlab的BLE Shield(http://redbearlab.com/bleshield/)模拟一个灯塔.

谢谢,DAN

*更新03/05/14*

看起来苹果已经推出了iOS 7.1的主要更新:现在,如果iOS检测到与您的应用匹配的UUID,它将为您打开应用.该应用程序只需要安装,它不必运行(AppDelegate中的逻辑需要响应唤醒呼叫).

Kha*_*azi 9

如果应用程序在后台运行然后关闭(我的意思是终止 - 由于来自其他应用程序的内存压力,当你双击主页按钮时,你不再在后台应用程序列表中看到它),那么iOS将会在调用委托时(假设您在.plist中列出了后台模式),请注意将其唤醒.

如果应用程序在后台运行,然后由用户关闭(我的意思是终止.所以用户双击以获取在后台运行的应用程序列表,然后在后台列表中单击您的应用程序,直到它摆动并且然后按下应用旁边的'x'来杀死它)然后这清楚地表明用户不希望应用程序在后台运行,并且应用程序将不会重新启动.用户必须重新启动应用程序,以便其代表在后台重新开始运行(iOS7中的新功能).

更新:我不确定这是否在文档中,但它在CoreBluetooth WWDC 2013视频中.我建议你看.他们花了很多关于CoreBluetooth在后台表现的视频.


小智 5

据我了解,如果您的应用程序之前未与 BLE 外设连接,则不会。

如果您的应用程序之前已与 BLE 外设连接,则使用:

-connectPeripheral:选项

连接请求不会超时。调用此方法的最佳位置是当您的应用程序失去与 BLE 外设的连接时。当您在 CBCentralManagerDelegate 协议中失去与外围设备的连接时,您将收到通知:

-centralManager:didDisconnectPeripheral:错误

因此,下次您的应用程序进入 BLE 外设的范围时,它将触发此方法。另请注意,在初始化 CBCentralManager 时,您需要设置状态保存和恢复。

  • 借助信标技术,无需将外围设备与设备配对。 (3认同)
  • @DAN - 这是真的,但请注意“连接”和“配对”也不是同一回事。 (2认同)