如何减少didRangeBeacons方法的时间间隔

时间:2014-07-09 11:18:52

标签: ios objective-c ibeacon

我正在开展涉及iBeacons的项目。我观察到在1秒间隔内调用didRangeBeacons方法。有没有办法减少这个时间间隔?我的项目需要低延迟接近检测,我想知道如何实现这一点。

1 个答案:

答案 0 :(得分:3)

不,您无法在iOS上减少此间隔,因为它已融入CoreLocation API。您可以在Android上执行此操作,或者您可以在iOS上使用较低级别的CoreBluetooth API执行类似操作,但使用CoreBluetooth是一个比您在此处可以回答的更大的滚动项目。

虽然我不确定您的用例,但您应该考虑减少间隔可能没有用。信标仅以特定频率(通常为1-10Hz)发送广告。如果您使用以10Hz传输的信标,您可能会在1/10秒内进行检测。但是如果你需要一个距离估计,每个数据包的波动很大,所以你真的需要对许多样本的测量进行平均。

此外,考虑到基于CoreBluetooth的解决方案只能在应用程序位于前台时进行更快的测距。 iOS上的后台进程有一系列不同的延迟挑战。

最后,任何CoreBluetooth解决方案都无法与标准iBeacon一起使用,因为iOS沙盒能够使用除CoreLocation之外的任何内容读取iBeacon标识符。所以你需要建立一个自定义信标。