【发布时间】:2014-08-26 07:48:51
【问题描述】:
我正在开发一个必须测量到 iBeacon 距离的应用程序。当用户在距离(1 米)内时,应通知用户。
它在 iOS 上运行良好,但在 Android 上我得到了各种结果。我正在使用 Estimote Android SDK (https://github.com/Estimote/Android-SDK) 和 Android 4.3。
以下是 Nexus 4 和 Nexus 5 的测量结果。iBeacon 放置在距离手机一米的位置(测量结果与更多样本一致):
Nexus 4:
08-25 11:39:04.788: : Major: 27485 Accuracy: 0.36351308115918884 Power: -74 Rssi: -67
08-25 11:39:05.880: : Major: 27485 Accuracy: 0.31923897946172497 Power: -74 Rssi: -66
08-25 11:39:06.911: : Major: 27485 Accuracy: 0.31923897946172497 Power: -74 Rssi: -66
08-25 11:39:07.962: : Major: 27485 Accuracy: 0.41856988869951295 Power: -74 Rssi: -68
08-25 11:39:09.003: : Major: 27485 Accuracy: 0.31923897946172497 Power: -74 Rssi: -66
Nexus 5:
08-25 11:35:31.443: : Major: 27485 Accuracy: 0.14058401218665711 Power: -74 Rssi: -61
08-25 11:35:32.483: : Major: 27485 Accuracy: 0.14058401218665711 Power: -74 Rssi: -61
08-25 11:35:33.513: : Major: 27485 Accuracy: 0.17333602268971005 Power: -74 Rssi: -62
08-25 11:35:34.553: : Major: 27485 Accuracy: 0.17333602268971005 Power: -74 Rssi: -62
08-25 11:35:35.593: : Major: 27485 Accuracy: 0.17333602268971005 Power: -74 Rssi: -62
如前所述,它们都没有接近一米。 Nexus 4 的结果最接近,为 0.42 米。 Accuracy 取自 Estimote SDK 中的 Utils.computeAccuracy。
最大的问题是不同的设备会给出不同的结果。我尝试过的大多数设备(Nexus 4、Nexus 7、HTC One Mine)的结果与 Nexus 4 相似。但是 Nexus 5 表明比其他设备更接近。
有没有办法让所有设备都给出(接近)相似的结果?另一种方法来了解不同设备的测量方式(因此算法可以补偿不同的结果)
还有人找到提高 Android 蓝牙 LE 采样率的方法吗?
我真的很想避免在用户启动应用程序时使用一些校准。
我必须使用 iBeacons(客户需求),但如果这有助于解决问题,可以选择另一个库。
【问题讨论】: