信标区域的 iBeacon 监控模式接近度

Posted

技术标签:

【中文标题】信标区域的 iBeacon 监控模式接近度【英文标题】:iBeacon monitoring mode proximity for beacon region 【发布时间】:2017-06-26 11:10:05 【问题描述】:

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

以前有个函数叫:

 var radius: CLLocationDistance  get 

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

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

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

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

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

   func update(distance: CLProximity) 

【问题讨论】:

"与对区域的一般理解相反,信标区域不由任何地理属性定义,例如 GPS 数据或纬度和经度。相反,它具有与信标相同的三个值:UUID、主要和次要(在此处阅读有关它们的更多信息)。因此,区域的物理表示是该区域中所有信标的范围。 (community.estimote.com/hc/en-us/articles/…) ***.com/questions/23392665/… 【参考方案1】:

几点:

    你说得对,不能设置信标监控范围。

    radius 字段从来不是为信标监控而设计的,而是为地理围栏而设计的,因此它永远无法满足您的需求。

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

    李>

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

我已在对此related question 的回答中更详细地描述了该技术。

【讨论】:

以上是关于信标区域的 iBeacon 监控模式接近度的主要内容,如果未能解决你的问题,请参考以下文章

接近 API 的不一致行为 - iOS iBeacon

从 iBeacon 接近控制视图

iBeacon 监控不适用于 Cordova-plugin-ibeacon

iBeacon(Kontakt Beacon)区域监控在android

Swift iBeacon 只有一个信标被监控

iOS 在后台监控/测距信标会消耗大量电池