寻找iBeacon后,手机重启后iOS上的蓝牙LE状态

时间:2016-05-17 14:25:43

标签: ios bluetooth-lowenergy cllocationmanager ibeacon region-monitoring

在等待发现iBeacons时,我正在做一些关于在应用程序被杀或手机重启后唤醒应用程序的测试。

根据Apple documentation

  

区域监控服务在应用程序正常时提供事件   在前台或背景中运行。 (您可以使用此服务   地理和信标区域。)对于终止的iOS应用程序,这个   服务重新启动应用程序以提供事件。使用此服务   需要用户“始终”授权。

我用:

  • [CLLocationManager startMonitoringForRegion:]搜索iBeacons
  • locationManager:didEnterRegion:locationManager:didExitRegion:代表
  • 我要求CLBeaconRegion通知notifyOnEntrynotifyOnExit
  • 为位置
  • 正确设置了执行的后台权限

到目前为止它运行良好,当我杀死应用程序但进入iBeacon区域时,应用程序正确重启。它在我重新启动手机时也有效,所以我的应用程序配置似乎没问题。

但是,如果我在重新启动后让我的手机关闭屏幕而不是使用它,那么手机对灯塔区域的更改反应非常缓慢(几小时后)。如果我主动打开屏幕并解锁手机,那么手机似乎会对iBeacons做出更快的反应。

这是我在重启后立即观察到的(iOS 9.3):

    锁定屏幕上的
  • ,即使在我解锁手机后蓝牙图标被激活,蓝牙图标也会丢失;值得注意的是,如果我触发一些信标区域更改,应用程序将不会在重新启动后立即做出反应
  • 解锁手机一次后,当我有时在不解锁手机的情况下打开屏幕时,似乎虽然没有出现蓝牙图标,但任何信标区域更改都不会触发任何内容
  • 在某个时间点,锁定屏幕上开始出现蓝牙图标;然后,电话似乎是对信标区域变化的反应

对重启时管理蓝牙的方式有什么解释吗?可以预测吗?

我需要能够解释为什么iBeacon上的区域监控在手机重启后没有那么反应。我想知道手机是否会等待某种“重大位置变化”事件才能正确开启其蓝牙设备。

1 个答案:

答案 0 :(得分:0)

iPhone重启后的信标监控需要时间。根据我的测试,大约需要4分钟来发射一个事件(输入区域) 在iPhone6 iOS9上完成测试