在iPhone上重新启动iOS BLE Central应用程序

我打算开发一个iOS应用程序,使用CoreBluetooth框架连续监视计步器外围设备,并统计脚步。

我知道,如果将背景执行模式设置为BLE中央,应用程序即使在后台也将继续接收BLE事件。

苹果文档指出,如果应用程序由于内存不足而终止,则系统可以跟踪特定中央pipe理器的BLE事件,如果状态保存和恢复被采用的话。

假设我有一个以中央模式运行的iOS应用程序。 当有脚步的特征变化时,应用程序被订阅接收来自计步器的通知。

我在我的应用程序中采用了以下内容。

  • BLE中央后台模式
  • BLE中央pipe理器的状态保存/恢复

我开始我的应用程序,扫描,配对和连接到计步器,应用程序开始接收脚步。

我的问题:

  1. 现在,如果iPhone重新启动,我是否会继续接收BLE事件,以便我的应用程序将在后台启动,而用户不必再次手动启动应用程序并连接到计步器?

  2. 如果应用程序由用户明确使用多任务手势终止,那么应用程序是否能够接收BLE事件,而用户不必再次手动启动应用程序并连接到计步器?

  3. 有没有办法启动我的应用程序在iOS启动?

  1. 现在,如果iPhone重新启动,我是否会继续接收BLE事件,以便我的应用程序将在后台启动,而用户不必再次手动启动应用程序并连接到计步器?

您的应用程序将不会收到BLE事件,因为所有应用程序在重新启动后都以终止状态启动(尽pipe仍在应用程序切换器中)。 用户必须在重启后至less手动启动一次您的应用程序,以便使用BLE。

  1. 如果应用程序由用户明确使用多任务手势终止,那么应用程序是否能够接收BLE事件,而用户不必再次手动启动应用程序并连接到计步器?

与上面相同,应用程序已经进入终止状态,所以它将不能使用BLE进行通信,直到再次显式启动为止。

  1. 有没有办法启动我的应用程序在iOS启动?

iOS不提供任何启动应用程序的方式。

我可以find的所有这一个例外是iBeacons。 如果您的应用程序注册接收特定iBeacon的更新,则iOS会在find该应用程序时启动应用程序(即使在重新启动后,或者用户明确从切换器中将其杀死)。 当你得到iBeaconcallback,你可以启动所有的BLE逻辑,然后按照惯例在后台运行。 当然这意味着你需要在你的计步器上作为iBeacon进行广告宣传,这可能是行不通的。

请记住,检测iBeacon是相当挑剔的,尤其是在重新启动后。 您几乎没有保证多快,或者即使您将交付的iBeaconcallback启动您的应用程序。 但是,这是一些东西。

资源