如何查找不在范围内的所有WiFi网络?

时间:2011-06-23 04:39:14

标签: android networking wifi

我正在编写一个显示WiFi网络类型和状态的应用程序。如何找到所有“不在范围内”的WiFi网络?是否有可能获得超出范围的所有已配置(以前看到的)WiFi网络的列表?

我使用下面的代码来获得结果

    WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
    List<ScanResult> results = mWifiManager.getScanResults();
    if (configs != null) {
        for (WifiConfiguration config : configs) {
            for (ScanResult result : results) {
                if (result.SSID  == null || result.SSID.length() == 0) {
                    continue;
                }

                else {
                    if (result.SSID.equals(MyString.removeDoubleQuotes(config.SSID))) {
                        int level = mWifiManager.CalculateSignalLevel(result.level, 4);
                        Log.d("MyApp", Config.SSID + "  " + level);
                    }
                }
            }
        }
    }

但如果配置的网络数量很多,那么执行将需要很长时间。有没有办法优化这个问题?通过仅获取已配置网络的扫描结果。

1 个答案:

答案 0 :(得分:3)

如何从所有wifi网络中减去范围内的wifi网络?