3

我正在为 iBeacon 开发移动应用程序。我们的产品适用于 iOS 和 Android 平台。在 iOS 上,对 iBeacon 的监控是默认功能,因此它们使用默认方法。为了在 Android 上实现 iBeacon,我使用 AltBeacon。但我们发现我们的平台之间存在 1 大差异。必须在 1 米半径范围内工作的信标(在 iOS 上),我的应用程序可以在 3 米范围内看到。这对我们的产品来说是个大问题,因为信标必须在两个平台上以相同的距离工作。因此,在 iOS 上,他们无法更改监控逻辑中的任何内容。我可以更改监控的灵敏度吗?

4

1 回答 1

3

让不同的设备在完全相同的距离上检测信标是非常困难的。主要问题是不同的移动设备可能具有完全不同的蓝牙无线电和天线,它们具有非常不同的增益。虽然检测到的信号水平在 iOS 设备上相当一致(除了 iPod touch 设备具有更高增益的接收器并进一步检测信标),但 Android 设备却无处不在。

尝试使其更加一致的一种方法是将监控与测距相结合。不要在监视回调上触发动作,而是在检测到信标后立即开始测距,然后获取距离估计,并且仅在距离估计足够近时触发动作。我写了一篇博客文章来描述这个过程。

上述技术仍然存在问题,尤其是在 Android 上,因为准确的距离估计需要与特定 Android 设备型号上的蓝牙接收器匹配的公式。Android 信标库默认使用 Nexus 5 计算,但这可能会大大高估或低估其他模型的距离。出于这个原因,我们使库支持基于每个设备的可扩展距离公式数据库,并且我们提供了用于计算其他设备的正确公式并将它们添加到数据库中的说明。如果您知道您的目标是特定设备,那么这可能是您的一个选择。

但是,如果您想让所有 Android 设备在非常特定的距离处检测到信标,则不太可能成功。大量的 Android 设备使您不可能对所有设备都获得准确的距离估计,因此您必须愿意接受某些设备上的不准确估计,或者调整您的用例,这样就没有必要了。

于 2014-12-28T16:53:04.183 回答