0

我对监控模式下的 iBeacons 有疑问。如果设备在信标附近 1-2m 处,我想与发送给用户的通知进行交互。

曾经有一个函数叫做:

 var radius: CLLocationDistance { get }

它现在已被弃用,因此无法设置信标区域的范围。所以无法配置内部、外部、未知的不同状态。大多数远程信标的区域超过 60m,这使得该区域对于您家中的任何交互都很大。

我要做的就是将我通过 AT 命令使用的 BLE 芯片的功率降低到 -4hz。现在跨度在 3-4m 左右,这更好一点仍然不是我想要的。我试过用锡罐来进一步降低信号,但这并没有太大的区别。甚至是 BLE 芯片周围的锡箔。

有人找到指定信标区域的方法吗?需要使用此功能触发内部区域的接近度:

   func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, for beaconRegion: CLRegion){}

测距模式似乎不能与监控结合使用,所以我不能使用接近度,否则这将是一个解决方案。

   func update(distance: CLProximity) {}
4

1 回答 1

0

几点:

  1. 您是正确的,您无法设置信标监控的范围。

  2. radius领域从来没有为信标监控而设计,而是为地理围栏设计的,所以从来没有做你想做的事。

  3. 降低发射器功率通常是不可靠的,因为如您所见,您无法很好地控制触发距离,这会导致触发发生的距离发生很大变化。

  4. 测距确实与监控结合使用,但有一些限制,因此这是实现您想要的最佳技术。

我在对这个相关问题的回答中更详细地描述了该技术。

于 2017-06-26T13:12:13.400 回答