diff options
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/ClientModeImpl.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java index 7da4b6fd1..08afc04bf 100644 --- a/service/java/com/android/server/wifi/ClientModeImpl.java +++ b/service/java/com/android/server/wifi/ClientModeImpl.java @@ -2277,11 +2277,13 @@ public class ClientModeImpl extends StateMachine { } if (newRssi > WifiInfo.INVALID_RSSI && newRssi < WifiInfo.MAX_RSSI) { - // screen out invalid values - /* some implementations avoid negative values by adding 256 - * so we need to adjust for that here. + /* + * Positive RSSI is possible when devices are close(~0m apart) to each other. + * And there are some driver/firmware implementation, where they avoid + * reporting large negative rssi values by adding 256. + * so adjust the valid rssi reports for such implementations. */ - if (newRssi > 0) { + if (newRssi > (WifiInfo.INVALID_RSSI + 256)) { Log.wtf(TAG, "Error! +ve value RSSI: " + newRssi); newRssi -= 256; } |