如何避免在标准android WiFi列表中复制WiFi网络



在我的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网络名称,如果存在,则跳过它。只是一个可能的解决方案,而不需要了解您的代码。要做到这一点,你需要一个第二个列表来保存你迄今为止发现的东西。

最新更新