iOS / Beacon:重置 didEnterRegion 可能吗?

Posted

技术标签:

【中文标题】iOS / Beacon:重置 didEnterRegion 可能吗?【英文标题】:iOS / Beacon: Reset didEnterRegion possible? 【发布时间】:2016-12-14 17:00:41 【问题描述】:

我们需要 ios 的位置管理器来检测信标。这意味着我们监控一个区域并在我们进入一个区域时获取 didEnterRegion 事件。现在很难测试我们的信标安装,因为我们必须等待 didExitRegion 事件至少大约 30 秒。有时它会超过 30 秒...

如果我们可以取消进入一个区域,那将是非常有帮助的。确保我们已经退出了。

这可能吗? 有没有办法做到这一点?

谢谢 汉斯

【问题讨论】:

【参考方案1】:

您可以简单地停止对信标区域的监控,然后立即重新启动监控。根据我的经验,这将在下次检测到与该区域匹配的信标时发送一个新的didEnterRegion: 回调,通常在一秒钟左右内。

locationManager.stopMonitoring(for: region)
locationManager.startMonitoring(for: region)

另请注意,您可以通过以下方式以编程方式重新启动所有受监控区域:

for region in locationManager.monitoredRegions 
  locationManager.stopMonitoring(for: region)
  locationManager.startMonitoring(for: region)

【讨论】:

以上是关于iOS / Beacon:重置 didEnterRegion 可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中读取 Beacon 制造数据的最佳方式

在 iOS 8 Beacon 中未检测到

iOS Beacon Monitoring - didEnterRegion 仅在受监控区域触发 didExitRegion 后调用

有关802.11的Beacon帧

802.11 ------ Beacon帧Beacon IntervalTBTTListen IntervalTIMDTIM

Estimote Beacon - 如何将 EstimoteTelemetry 与 Beacon 匹配