Getting WiFi signal strength in Android Getting WiFi signal strength in Android android android

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");