【问题标题】:Find the nearest beacon找到最近的信标
【发布时间】:2025-12-16 23:20:13
【问题描述】:

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

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

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

我使用 Android AltBeacon 库。我无法以稳定的方式检测最近的信标:有时,距离设备约 5 米的信标比设备旁边的信标“更接近”RSSI,依此类推。 (信标使用相同的 TX 功率和广播间隔,altbeacon 扫描周期为 250 毫秒)

我应该怎么做才能使其稳定?什么,何时以及如何平均 rssi?或者我应该这样做吗?还是……?

非常感谢!

【问题讨论】:

    标签: android bluetooth ibeacon bluetooth-lowenergy altbeacon


    【解决方案1】:

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

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

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

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

    【讨论】: