java - 如何检查收到的信标是持续 2 分钟的信标?
问题描述
我必须制作一个 android 应用程序,目的是让用户在公共汽车上登记。该应用程序必须研究来自公共汽车的信标,同时必须发送一个信标。我如何检查接收到的信标是持续 2 分钟的信标,以便了解用户实际上在公共汽车上并且他没有经过?
作为一个起点,我正在使用https://github.com/Jaosrikate/iBeacon-Android并且我正在尝试进行一些更改。你对如何做到这一点有什么建议吗?
解决方案
信标测距涉及来自 API 的回调,该回调为您提供信标标识符。回调的时间是检测到信标的时间。
基本算法很简单:
创建一个 HashMap<String,Date> 来存储第一次检测到信标的时间戳。使用信标标识符的字符串表示形式作为键。
每当检测到信标时,检查它的标识符是否已经在地图中。
如果标识符不在地图中,则将其与当前 Date() 一起存储
如果标识符在地图中,请检查当前时间 - 地图中存储的时间是否 > 2 分钟。如果是这样,你有一个匹配
推荐阅读
- html - 溢出自动容器内的元素具有正确的宽度(所有组合的孩子)
- python - 在 Google colab 上安装 Kivy 依赖项
- java - Java:一种接受字符串作为参数的方法,什么输入验证会使该方法可防御?
- node.js - nodejs中使用firebase-admin的错误方法sendAll()
- javascript - 我正在尝试在 javascript 循环中发送 get 或 post 请求,但 .click() 只处理一次
- data-warehouse - 非规范化时要走多远
- android - 我可以使用 CameraX (Android Jetpack) 录制视频吗?
- c# - 在显示片段后存储要使用的画布绘图
- error-handling - 如何解决 BigQuery 中的“在美国位置找不到数据集”错误?
- android - 如何在原生广告位置上实施 Facebook 推荐