我一直在使用iOS设备作为广播公司和接收器,使用iOS 7中的新iBeacon API。
文档没有详细说明接收设备应该看到每个接近指示符的距离,并特别将它们称为“相对”。在使用演示应用程序进行实验时,我观察了这些距离(iPhone == receiver,iPad == broadcaster):
远 - 50英尺?
靠近 - 2-3英尺
立即 - 2英寸
这对我来说似乎很小,而且CLBeaconRegion类引用中可能有一个提示,它允许您从1米远的地方指定设备的信号强度。
peripheralDataWithMeasuredPower:
检索可用于将当前设备宣传为信标的数据。
参数
measuredPower
接收信号强度指示器(RSSI) 设备的值(以分贝为单位)。该值代表 测量距离一米远的信标强度并在此期间使用 不等。指定nil以使用设备的默认值。
我的业余校准产生-60,我设置并重新测试:
远 - 数百(ish)英尺
靠近 - ~50英尺
立即 - 1米(略少)
根据Apple,我的第二次测试的结果是“理想”范围吗?他们真的远离我在第一次测试中遇到的“默认”设置。
或者我应该根据我的需要考虑这些范围“可校准”?
答案 0 :(得分:34)
根据我对API的理解,实际距离永远不能保证,您不应该将读数视为精确测量。接近度用于确定不同信标之间的相对距离,以便您可以根据应用要求做出相应响应。
话虽如此,苹果肯定会在他们的文档中画出灰色区域。 measuredPower
的描述很有趣,很容易让人想到你可以使用这个值来获得准确的距离读数(当然经过校准)。我只是不认为是这种情况,在这些功率非常低的设备中信号衰减的可能性,我不认为你会得到一致的实际距离读数。
从CLBeacon
引用中accuracy
的描述读取
以米为单位表示一西格玛水平精度。用这个 用于区分具有相同接近度的信标的属性 值。 请勿使用它来识别信标的精确位置。 精度值可能因RF干扰而波动。
我觉得这在iBeacon功能的整个使用过程中都会产生莫名其妙的共鸣。
这是我的全部解释,我没有像在多种环境中测试这种情况一样精确,看看是否给出了一致的读数。我不确定这是否有帮助。