在Android中WiFi读数不稳定

时间:2014-04-25 13:40:42

标签: android rssi

我正在构建一个应用程序来收集我周围的AP的RSSI级别,并根据它进行一些计算。

问题是即使设备静止,读数也不稳定。例如,来自接入点的信号在-71,-68,-75之间波动等等......

有没有办法稳定信号?

3 个答案:

答案 0 :(得分:2)

  

在电信领域,接收信号强度指示器(RSSI)是对接收到的无线电信号中存在的功率的测量。

我认为你能做到的最好的事情就是将它们统计在一起并在经过x倍的测量时间之后将它们分开。 (因为各种组件,你永远不会得到100%准确的访问点)。

源: http://en.wikipedia.org/wiki/Received_signal_strength_indication

答案 1 :(得分:1)

“问题是即使设备静止,读数也不稳定。例如,来自接入点的信号在-71,-68,-75之间波动等等......”

这是无线信号的本质。即使设备静止,环境也在“移动”,因此,信号受到小规模衰落的影响,主要是由于环境散射体。因此,在器件测量中获得这些波动是正常的。

每个Android设备Wi-Fi测量的准确性都是另一回事。

此外,请记住,返回的值以dBm为单位,这意味着以mWatt为单位,但以对数刻度表示。因此,正如Thealon提出的平均值,你必须要小心,因为你不能忽略dBm值。

一种解决方案是将dBm值转换回mWatt,然后执行平均。如下所示

Convert dBm to mWatt: mWatt = 10^(dBm/10)

答案 2 :(得分:0)

获得RSSI时,Google建议:

Use calculateSignalLevel(int, int) to convert this number into an absolute signal level which can be displayed to a user.

Official Docs