【发布时间】:2016-10-12 14:37:10
【问题描述】:
我一直在研究和阅读许多关于 iBeacons 和信标相关应用能够做什么的不同文章。但是,当我阅读其中一篇文章时,我找不到任何问题的答案.
单个信标是否可以同时发送不同的信号,以便应用可以检测到人是向前还是向后移动?
或者,你们能否提出一个想法,然后我可以用它来检测一个人是否要回去或他们是否走对了路?
非常感谢
【问题讨论】:
标签: ibeacon ibeacon-android beacon android-ibeacon
我一直在研究和阅读许多关于 iBeacons 和信标相关应用能够做什么的不同文章。但是,当我阅读其中一篇文章时,我找不到任何问题的答案.
单个信标是否可以同时发送不同的信号,以便应用可以检测到人是向前还是向后移动?
或者,你们能否提出一个想法,然后我可以用它来检测一个人是否要回去或他们是否走对了路?
非常感谢
【问题讨论】:
标签: ibeacon ibeacon-android beacon android-ibeacon
有两种基本方法可以解决这个问题,但两者的可靠性都有限:
完整的室内导航解决方案,使用信标作为更大系统的一个小组成部分,随着时间的推移估计用户的位置。使用这样的系统,您可以通过了解用户的当前位置和目的地位置以及查看到目的地的估计距离随着时间的推移是否变大或变小来确定用户是否走错路。 构建和使用这样的系统比使用信标编写应用程序复杂得多,因此虽然值得一提,但它确实超出了 StackOverflow.com 之类的论坛的范围。
一个更简单的解决方案,使用两个或多个信标,其中一个在目的地。系统将通过使用两个或多个信标之间的距离估计来确定用户是否正在走向目的地。用户和距离目的地最近的信标。如果使用 Android 信标库,测距更新大约为 1 Hz,将使用beacon.getDistance() 提供到信标的估计距离(以米为单位)。通过查看这个数字在多次回调之间是上升还是下降,您可以确定用户是越来越近还是越来越远。
这两种解决方案都有一些注意事项,尤其是第二个:
信标距离估计基于蓝牙信号强度,因此准确性受到无线电噪声和多路径的限制。即使您站着不动,个人估计也通常会建议您离得更远或更近。
为了克服上述噪声影响,信标 SDK 使用多个信号强度样本来帮助平滑估计。默认情况下,Android 信标库(和 iOS CoreLocation)使用大约 20 秒的平均时间来帮助解决这个问题。但是这会在距离估计中引入延迟,告诉您的不是用户现在在哪里,而是用户在过去 20 秒内平均在哪里。在 Android 上,您可以将此平均间隔调整得更小,但会增加估计的错误率。
因此,构建您自己的系统来执行此操作意味着在时间延迟、错误率和时间间隔之间做出许多妥协,在这些时间间隔内,可以足够准确地确定更近/更远的确定。 您能否使该解决方案在您的用例中运行得足够好,这实际上取决于您要完成的具体工作。您最好的选择可能是尝试一个简单的应用程序,看看您是否可以使它对您的用例足够好。
【讨论】: