【发布时间】:2014-12-10 10:46:19
【问题描述】:
在 iOS 中,我们在后台实现了对 ibeacon 的监控和测距。当设备进入一个区域时,我们开始在后台对 ibeacons 进行测距。当设备退出某个区域时,我们会停止在后台对 ibeacons 进行测距。
当我们在启动应用程序时发出以下语句时,这非常有效: locationManager.startUpdatingLocation()
并且我们可以在我们在该区域内的整个时间里在后台保持信标的范围。
当我们不发出此声明时,后台 iBeacons 的测距会在启动几秒钟后停止。这对于我们的应用程序来说还不够好,因为我们需要在一个区域内时保持对信标的测距。 我们还看到,以这种方式在后台监控和测距信标会消耗大量电池电量。
有人有这方面的经验吗?后台的电池消耗是由 startUpdatingLocation() 引起的吗(它还会为 didUpdateLocations() 生成回调,其中包含我们不需要的纬度和经度)?还有其他方法可以避免在后台几秒钟后停止信标的测距吗?
我看到了另一个条目Beacon Ranging in Background on iOS,但仅测距 180 秒也不是我们真正想要的。条目说: 为了解决第二个问题,在转换后只能获得 10 秒的测距时间,您可以请求额外的时间来保持测距。 iOS 允许您在后台继续测距长达 180 秒。这不需要后台模式,也不需要 AppStore 的特殊许可。
【问题讨论】:
标签: ios background ibeacon