将 BLE 与 CoreBluetooth(无 iBeacon)结合使用时,有没有办法在设备接收到蓝牙信号时唤醒未运行的应用程序?
我正在使用 RedBearlab 的 BLE Shield (http://redbearlab.com/bleshield/) 模拟信标。
谢谢, 丹
* 2014 年 3 月 5 日更新 *
Apple 似乎在 iOS 7.1 中引入了重大更新:现在,如果 iOS 检测到与您的应用匹配的 UUID,它将为您打开您的应用。该应用程序只需安装,不必运行(AppDelegate 中的逻辑需要响应唤醒调用)。
最佳答案
如果该应用程序在后台运行,然后由于其他应用程序的内存压力而关闭(我的意思是这里已终止 - 当您双击主页按钮时,您不会再在后台应用程序列表中看到它),然后当调用委托(delegate)时,iOS 将负责再次唤醒它(假设您在 .plist 中列出了后台模式)。
如果应用程序在后台运行,然后被用户关闭(我的意思是这里终止。所以用户双击以获取在后台运行的应用程序列表,然后在后台列表中单击您的应用程序,直到它摆动然后按下应用程序旁边的“x”将其杀死)那么这清楚地表明用户不希望该应用程序在后台运行并且该应用程序将不会重新启动。用户必须重新启动应用程序,其代表才能在后台再次开始运行(iOS7 中的新功能)。
更新: 我不确定这是否在文档中,但它在 CoreBluetooth WWDC 2013 视频中。我建议你看一下。他们用了很大一部分视频来介绍 CoreBluetooth 在后台的表现。
关于ios - 如何使用蓝牙信号 (BLE) 唤醒 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932090/