iBeacon后台监控停止工作

时间:2016-04-29 14:07:19

标签: ios ios9 core-location ibeacon

我有一个监控iBeacons进入/退出事件的应用程序。当它收到一个事件时,它会将事件转发给服务器。在用户最小化和/或强制关闭它之后,应用程序继续工作(例如,服务器继续接收更新)(因此它在后台正常工作)。

然而,在手机远离任何iBeacons足够长的时间(例如,过夜)并再次靠近iBeacons后,该应用程序停止接收进入/退出更新,直到用户再次打开它(带来它)进入前景)。如果用户在此时最小化/关闭应用程序,则更新将继续在后台正常运行。

我需要做些什么才能在后台运行长时间监控更新? iOS一段时间后会停止后台监控吗?

注意:我正在运行iOS 9.3.1

1 个答案:

答案 0 :(得分:3)

当应用程序被授予“始终”位置访问权限时,iOS应该能够在后台无限期地检测到信标

这是我听过的第二个报告,所以我想知道这是一个新的iOS版本中的错误还是更改。报告您的iOS版本会很有帮助。

一种可能性:网络呼叫可能被阻止,而不是信标检测。您可以通过将NSLog语句添加到:

来测试此假设
  1. 登录信标检测
  2. 登录与服务器的成功和失败连接。
  3. 添加上述内容后,请重现您在服务器上看不到事件的问题。然后将手机连接到XCode并转到设备,查看最近的NSLog输出以查看:

    1. 是否有表示检测到信标的线?
    2. 服务器连接是否成功?
    3. 如果您发现网络连接失败,您可以通过请求其他后台网络权限来纠正这种情况。

      编辑:在未进行检测时,您可能尝试的另一件事是在前台启动不同的信标扫描仪应用,例如Locate。这将强制执行操作系统蓝牙扫描,它可能会启动应用程序的检测。如果这样可行,它会告诉您蓝牙扫描已在手机中暂停。