2013-12-12 61 views
2

在我的Android應用程序中,我連接到WiFi網絡。但是,例如,如果我連接到這個網絡很多次,這個網絡的名稱會出現在標準的Android WiFi列表中很多次。我怎樣才能避免這種情況?如何避免在標準Android WiFi列表中複製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); 

我會盡快添加一個屏幕截圖儘可能

+0

你可以添加一些代碼和截圖嗎? –

回答

5

如果網絡已經存在,請不要撥打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網絡名稱和是否存在跳過它。只是一個可能的解決方案,不知道你的代碼要做到這一點,你需要第二個列表來保存迄今爲止發現的內容。

+0

我想你誤解了一個問題。連接很多次後,網絡在Android標準WiFi列表中出現很多次,而不是在我的應用列表中。 –