找到最近的信标

Find the nearest beacon

我正在开发一个使用 iBeacons 的应用程序。它的主要功能是检测最近的beacon(距离无所谓,我只需要最近的)并根据它呈现一些内容。

在 IOS 上它就像一个魅力,毫无疑问。

关于Android 我有奇怪的经历。我知道,这取决于硬件、蓝牙芯片供应商等,但即使我尝试了很多东西(平均 rssi、排队……),我也无法使其稳定。信标之间相距约3-5米,一个约80平方米的房间内有8个信标。

我使用 Android AltBeacon 库。我无法以稳定的方式检测到最近的信标:有时距离设备约 5 米的信标是 RSSI 'nearer',而不是紧挨着设备的信标,依此类推。 (信标使用相同的 TX 功率和广告间隔,altbeacon 扫描周期为 250 毫秒)

我应该怎么做才能让它稳定?什么、何时以及如何计算 rssi 的平均值?或者我应该这样做吗?或者...?

非常感谢!

RSSI 值将取决于 TX 功率以外的许多因素,其中包括:

  • 多径反射:2.4 GHz 会从墙壁反射,因此如果反射有助于远处的信标并衰减近处的信标,那么远处的信标可以获得更强的 RSSI。
  • 天线的摆放位置:phone正确的握持方式会有很大的不同。

我不能说为什么 iOS 应该比 Android 更好,但可能是因为他们有一个运行良好的平均算法。从我的两点来看,这不是一件简单的事情。

要了解有关这些问题的更多信息,我建议阅读 Getting Started with iBeacon 中的 部署 iBeacon常见问题与解答