iBeacon后台监控停止工作



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

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

我需要做些什么来允许在后台进行长时间的监控更新吗?过一段时间iOS会停止后台监控吗?

注意:我运行的是iOS 9.3.1

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

这是我听到的第二个这样的报告,所以我想知道这是一个错误还是新iOS版本的变化。报告您的iOS版本会很有帮助。

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

  1. 登录信标检测
  2. 登录成功和不成功的服务器连接

添加以上内容后,在服务器上看不到事件的情况下重新生成问题。然后将您的手机连接到XCode并转到设备,查看最近的NSLog输出以查看:

  1. 是否有一条线指示检测到信标
  2. 服务器连接是否成功

如果您发现是网络连接失败,您可以通过请求其他后台网络权限来纠正这种情况。

编辑:当没有进行检测时,您可以尝试的另一件事是在前台启动不同的信标扫描应用程序,如Locate。这将强制操作系统进行蓝牙扫描,并可能启动应用程序的检测。如果这起作用,它会告诉你蓝牙扫描已经暂停。

最新更新