iBeacon 实施 - 用例
Posted
技术标签:
【中文标题】iBeacon 实施 - 用例【英文标题】:iBeacon implemenation - Use cases 【发布时间】:2016-06-10 07:47:45 【问题描述】:我正在尝试找出用例来部署信标以检测客户在商场特定区域的停留时间。
据我了解,我可以使用一个唯一的 UUID 声明作为应用程序监视的区域,但 didEnterRegion 不提供识别检测到哪个信标所需的主要和次要。在 didEnterRegion 触发后,应用程序将能够在大约 10 秒内进行测距以检索主要和次要。
如果我的信标具有重叠的覆盖检测空间怎么办? 假设空间有 4 个信标,当客户从 1 个信标移动到另一个信标时,不会有任何退出/进入区域触发,因为 UUID/区域仍然相同。 对于我想记录客户停留在不同信标的持续时间的场景,什么是更好的实施或解决方案?
谢谢
【问题讨论】:
【参考方案1】:一些提示:
使用单个 ProximityUUID。在商场的每个区域使用不同的主要价值。使每个信标的次要值不同。
为每个区域(主要)设置一个 CLBeaconRegion 并为每个区域启动监视和测距。 (最多 20 个)。
Extend background ranging 每个区域进入/退出 3 分钟。
测距时,使用估计的距离来决定哪个信标最近。 (主要价值)中的任何区域都是商城区域。如果与当前区域不同,则标记退出该区域的时间戳和进入新区域的时间戳。
如果您收到手机当前所在区域的监控区域退出事件,请标记退出该区域的时间戳。
【讨论】:
据我了解,如果信标具有重叠覆盖范围并且它们共享相同的 UUID。 EnterRegion 只会在设备第一次进入该区域时触发一次,但在进入第二个或第三个信标范围时不会触发。 ExitRegion 只会在设备完全离开具有相同 UUID 的所有信标时触发。因此,如果设备长时间停留在该区域,则 3 分钟的测距延长不足以监测设备的移动。 对于进入/退出,重要的不仅仅是 UUID,还有整个区域定义,包括专业。每当用户开始或停止看到与任何区域定义匹配的信标时,您都会收到一个新的监控回调,并且 3 分钟时钟再次开始。 有什么理由不使用不同的 UUID 而不是major 来设置CLBeaconRegion? 您可以使用不同的 UUID,但标准做法是尽可能少使用。这使得使用必须预先配置 UUID 的扫描应用程序更轻松地进行故障排除。以上是关于iBeacon 实施 - 用例的主要内容,如果未能解决你的问题,请参考以下文章
OBJ-C 操作方法:在同一设备中使用 BLE 连接和 iBeacon 的应用程序