问题描述
我必须制作一个 android 应用程序,目的是让用户在公共汽车上登记。该应用程序必须研究来自公共汽车的信标,同时必须发送信标。我如何检查接收到的信标是否是持续 2 分钟的信标,以了解用户实际上是在公交车上并且他没有经过?
作为起点,我正在使用 https://github.com/Jaosrikate/iBeacon-Android 并尝试进行一些更改。 您对如何执行此操作有任何建议吗?
解决方法
信标测距涉及来自 API 的回调,该回调为您提供信标标识符。回调时间为检测到信标的时间。
基本算法很简单:
-
创建一个 HashMap
来存储第一次检测到信标的时间戳。使用信标标识符的字符串表示作为键。 -
每当检测到信标时,检查它的标识符是否已经在地图中。
-
如果标识符不在地图中,则将其与当前 Date() 一起存储
-
如果标识符在地图中,请检查当前时间 - 地图中存储的时间是否 > 2 分钟。如果是这样,你有一个匹配