我正在编写一个显示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);
}
}
}
}
}
但如果配置的网络数量很多,那么执行将需要很长时间。有没有办法优化这个问题?通过仅获取已配置网络的扫描结果。
答案 0 :(得分:3)
如何从所有wifi网络中减去范围内的wifi网络?