Getting WiFi signal strength in Android
its an old post but this might help someone...
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);int numberOfLevels = 5;WifiInfo wifiInfo = wifiManager.getConnectionInfo();int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
Documentation: public static int calculateSignalLevel (int rssi, int numLevels)
Please check how dBm values for received Wireless Signal power are represented.
Excellent >-50 dBm
Good -50 to -60 dBm
Fair -60 to -70 dBm
Weak < -70 dBm
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);// Level of a Scan ResultList<ScanResult> wifiList = wifiManager.getScanResults();for (ScanResult scanResult : wifiList) { int level = WifiManager.calculateSignalLevel(scanResult.level, 5); System.out.println("Level is " + level + " out of 5");}// Level of current connectionint rssi = wifiManager.getConnectionInfo().getRssi();int level = WifiManager.calculateSignalLevel(rssi, 5);System.out.println("Level is " + level + " out of 5");