
[英]iBeacons: If app is in background, locationManager: didEnterRegion: is called only when lock screen displayed
[英]How to get background updates for iBeacons without using locationManager didEnterRegion
我想获取我的应用程序的后台更新以实现信标接近(进入区域),但是我刚刚阅读了以下有关Apple的文档 :
在iOS Simulator或设备上测试区域监视代码时,请注意,跨越区域边界后可能不会立即发生区域事件。 为了防止虚假通知,iOS在满足特定阈值条件之前不会传递区域通知。 具体来说,用户的位置必须越过区域边界,远离边界最小距离,并在报告通知之前保持该最小距离至少20秒。
理想情况下,我想使用另一种API-在检测到信标(反之则未被检测到)时立即告诉我,而无需应用Apple的启发式方法。
我本可以一直为所有可能的信标打开测距功能,但是我想那会很快耗尽电池电量。
当然有办法做到这一点,否则我会看到iBeacon的承诺破灭了:/
这些文档具有误导性,因为它们旨在涵盖对地理围栏区域(例如CLCircularRegion
)以及信标区域( CLBeaconRegion
)的CLBeaconRegion
。 您描述的启发式方法仅适用于地理围栏。
对于信标,进入区域的检测时间取决于硬件。 在iPhone 4S设备上,信标区域进入事件最多需要15分钟(信标扫描每15分钟进行一次。)在iPhone 5+设备上,借助硬件辅助,检测通常在1秒以内,但是如果所有辅助插槽均已使用(30区域最大值),它会退回到类似于iPhone 4S的行为。
还应注意,如果测距处于活动状态,则检测时间在1秒钟之内。
在此处阅读更多详细信息:
http://developer.radiusnetworks.com/2014/03/12/ios7-1-background-detection-times.html
http://developer.radiusnetworks.com/2015/04/21/max-beacon-regions-ios.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.