在我的android应用程序中,我连接到WiFi网络。但是,例如,如果我多次连接到这个网络,这个网络的名称就会多次出现在标准的android WiFi列表中。我该如何避免这种情况?
我的代码:
String networkSSID = "test";
String networkPass = "pass";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = """ + networkSSID + """;
conf.preSharedKey = """+ networkPass +""";
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
我会尽快添加一个屏幕截图
如果网络已经存在,请不要调用addNetwork
!您可以通过在WifiManager的getConfiguredNetworks
上迭代来发现这一点。
如果网络已经存在,只需连接即可。
for (WifiConfiguration config : wifiManager.getConfiguredNetworks()) {
String newSSID = config.SSID;
if (myNetworksSSID.equals(newSSID)) {
wifiManager.disconnect();
wifiManager.enableNetwork(config.networkId, true);
wifiManager.reconnect();
return;
}
}
...
addNetwork(conf); //your old code
只需扫描列表中的wifi网络名称,如果存在,则跳过它。只是一个可能的解决方案,而不需要了解您的代码。要做到这一点,你需要一个第二个列表来保存你迄今为止发现的东西。