监控区域时 iBeacon 主要/次要值是否可用.



我正在尝试构建一个测试应用程序,该应用程序将检测部署在几个物理位置的一组给定的iBeacon。检测应在后台完成,并按照一定的逻辑调用服务器。

Apple 的经验法则是对我的所有物理位置使用相同的 UUID:

UUID 由所有位置共享。

这允许 iOS 设备使用单个标识符来识别具有单个区域的任何应用商店。

然后,每个特定的商店

(旧金山、巴黎和伦敦)都被分配一个唯一的主值,允许设备识别哪个特定的商店它在。

我找到了使用给定 UUID 设置区域的调用,但没有找到检测到 UUID 时返回的对象以及返回的字段。

当iOS检测到具有给定UUID的信标时,应用程序从哪里获得major/minor值?

使用监控 API 时,只能在CoreLocation的进入/退出回调中获取CLBeaconRegion对象。 此类定义的信标区域通常不表示单个信标, 而是基于通配符标识符的一系列信标.

因此, 如果您在区域定义中使用通配符 (这是典型的),您实际上看不到哪个特定信标触发了区域条目. 若要解决此问题,必须同时组合监视和范围 API。 如果同时监视和范围,CoreLocation将在 didRangeBeacons beacons: [CLBeacon] inRegion region: CLBeaconRegion 方法中为您提供一个回调,其中包含它看到的所有CLBeacon对象的数组。

由于带有信标数组的回调每秒到达一次, 但是, 如有必要,您将需要添加自定义逻辑以仅在信标首次出现时执行一次操作.

由于您想要背景检测,因此同时进行测距和监控非常重要。 即使由于缺少特定的信标信息而没有在监视回调中放置任何内容,也需要进行监视,以使应用在新的信标检测后在后台唤醒。 然后,在应用再次挂起之前,您将收到大约 10 秒的范围回调。

相关内容

  • 没有找到相关文章

最新更新