在等待发现iBeacons时,我正在做一些关于在应用程序被杀或手机重启后唤醒应用程序的测试。
区域监控服务在应用程序正常时提供事件 在前台或背景中运行。 (您可以使用此服务 地理和信标区域。)对于终止的iOS应用程序,这个 服务重新启动应用程序以提供事件。使用此服务 需要用户“始终”授权。
我用:
[CLLocationManager startMonitoringForRegion:]
搜索iBeacons locationManager:didEnterRegion:
和locationManager:didExitRegion:
代表CLBeaconRegion
通知notifyOnEntry
和notifyOnExit
到目前为止它运行良好,当我杀死应用程序但进入iBeacon区域时,应用程序正确重启。它在我重新启动手机时也有效,所以我的应用程序配置似乎没问题。
但是,如果我在重新启动后让我的手机关闭屏幕而不是使用它,那么手机对灯塔区域的更改反应非常缓慢(几小时后)。如果我主动打开屏幕并解锁手机,那么手机似乎会对iBeacons做出更快的反应。
这是我在重启后立即观察到的(iOS 9.3):
对重启时管理蓝牙的方式有什么解释吗?可以预测吗?
我需要能够解释为什么iBeacon上的区域监控在手机重启后没有那么反应。我想知道手机是否会等待某种“重大位置变化”事件才能正确开启其蓝牙设备。
答案 0 :(得分:0)
iPhone重启后的信标监控需要时间。根据我的测试,大约需要4分钟来发射一个事件(输入区域) 在iPhone6 iOS9上完成测试