Yin Zhu Yin Zhu - 1 year ago 72
Android Question

How to get the connection strength of Wifi access points?

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:

  1. In debugging,
    only contains one connection. However, I can see that there are several APs available in the system's wifi setting. I.e.
    is an incomplete list.

  2. I don't know how to get the signal strength in

btw, I am using HTC Hero and Android 1.5.

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download