如何避免在标准Android WiFi列表中出现WiFi网络的重复?

3

在我的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);

我会尽快添加一张截图


你能添加一些代码和截图吗? - Aromal Sasidharan
2个回答

7
不要在网络已经存在的情况下调用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

0

只需扫描wifi网络名称列表,如果存在则跳过。这是一种可能的解决方案,不需要了解您的代码。为此,您需要一个第二个列表来记录到目前为止发现的内容。


我猜你误解了一个问题。在连接多次后,网络会出现在Android标准WiFi列表中,而不是我的应用程序列表中。 - Mykhailo Granik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接