I am building an application reading the signal strength of each available Wifi access point.
I've written code like:
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
// Get WiFi status
WifiInfo info = wifi.getConnectionInfo();
textStatus.append("\n\nWiFi Status: " + info.toString());
// List available networks
List<WifiConfiguration> configs = wifi.getConfiguredNetworks();
However, I have two problems:
In debugging, configs
only contains one connection. However, I can see that there are several APs available in the system's wifi setting. I.e. configs
is an incomplete list.
I don't know how to get the signal strength in WifiConfiguration
.
btw, I am using HTC Hero and Android 1.5.
In Windows, go to Network and Internet, and then Network and Sharing Center. Select the blue WiFi link to see the signal strength. On an Android phone or tablet. Look under Settings, WiFi, or Network, and search for a gear or WiFi icon next to the network you're connected to.
Wi-Fi signal strength is measured in multiple ways, but the most common is in decibels per milliwatt (dBm). Understanding different measurements like milliwatts (mW) or Received Signal Strength Indicator (RSSI) can be helpful, but it is more common that you will see signals measured in dBm.
According to the Android API documentation WifiManager.getConfiguredNetworks() does not fill the signal strength paramters. This data only represents the remembered access point settings, not the visible ones.
To get actually visible networks you must call WifiManager.startScan() to initiate WiFi radio scanning and WifiManager.getScanResults() after a while to get the scanning results.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With