CLBeacon接近始终仅返回.near和.far值,而不返回.immediate

时间:2019-01-23 12:47:06

标签: swift cllocation beacon ios12

我正在为iOS应用程序使用估算信标,并实现了 CLLocationManager 委托方法 didRangeBeacons ,以确定每个信标的接近程度。

基于 .inmediate,.near,.far 的相似性,我编写了一些功能。

此功能在iOS 11之前运行良好。在iOS 12升级后, .immediate 根本没有被调用。只有 .near和.far 被呼叫。

我进行了很多搜索,但找不到任何解决方案。即使我将iPhone放在信标上方,也可能没有单独检测到 .immediate 的原因是什么?

1 个答案:

答案 0 :(得分:0)

检查以查看CLBeacon精度字段返回什么。这是一个估计的距离,以米为单位,从RSSI和配置到信标中的测量功率校准值得出。基本上,如果精度为0.5米或更小,您将获得.immediate接近度。而且,如果RSSI(以dBm为单位测量)比配置到信标中的测得功率校准值(也以dBm为测量单位)强得多(负值更少),则您只能获得0.5或更小的精度。

通过将配置在信标中的测量功率校准值调整为一个更大的负数,您也许可以使设备返回一个.immediate值。

如果您确实发现两者之间存在差异,那么上述建议当然不会帮助它在iOS 11和iOS 12上以相同的方式工作。我很想知道您是否可以使用第二台设备重现这种差异。