使用iOS中的核心蓝牙,每15分钟从BLE设备获取数据

时间:2018-01-30 08:48:58

标签: swift xcode bluetooth ios11

我有特殊的要求,我希望每隔15分钟从连接的Ble设备中获取数据,持续一段时间,如下午10:00到上午10:00。可以在我的应用程序处于后台并且设备被锁定时完成。显然,用户不会将应用程序保持在前台这么久。关于如何实现这一目标的任何建议。

3 个答案:

答案 0 :(得分:0)

在后台模式(app被杀)iOS设备无法与BLE通信。 仅扫描具有服务uuid​​的BLE设备。

iOS中只能进行后台扫描。

因此,在后台模式中找到外围设备时,您可以收到通知。

答案 1 :(得分:0)

可能会实现,但不幸的是,您需要从设备的角度来解决这个问题。

只要您需要同步数据,您的设备就需要唤醒并启动与手机的连接。它将唤醒您的应用程序,甚至在终止时启动它。然后,您可以启动一个标准的后台流程,您有时间做任何需要完成的工作。完成后,您应该断开与设备的连接并等待重复该过程。

可能会有一些黑客使用静音推送通知来唤醒你的应用并尝试连接,但Apple很可能不允许这样做加上很有可能你的BT根本无法在该状态下工作。如果你真的需要的话,还是可以试试。

答案 2 :(得分:0)

您遇到的问题是,您无法在iOS应用中使用计时器。因此,您有一些选项需要外围设备的特定行为。

一个选项是让应用程序首先连接,并且一旦断开连接,它会尝试重新连接。然后简单地让外围设备不要做广告15分钟。只要它再次做广告,您的应用就会被唤醒,因为它已连接。然后,您可以获取数据。

另一个选择是不断连接并在外围设备中有一个定时器,每15分钟通知一次数据。

这两个选项都要求您在应用和状态保存和恢复中启用后台功能。