2013-04-17 185 views
7

我試圖通過編程方式刪除我的wifi網絡 - 但我似乎無法讓它刪除/忘記當前連接的WiFi連接。這應該是一個非常簡單的任務 - 所以我不確定我做錯了什麼。Android-無法刪除Wifi網絡編程 - 類型WifiManager中的方法removeNetwork(int)不適用於參數(字符串)

我使用下面的StackOverflow柱爲例:

How to forget a wireless network in android programmatically?

 public class KillTimer extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.killtimer); 
     WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
     wifiManager.getConnectionInfo().getSSID() 
     wifiManager.getConnectionInfo().getNetoworkId(); 
     wifiManager.removeNetwork(wifiConfig.networkId); 
     wifiManager.saveConfiguration(); 

    }} 

回答

8

removeNetwork()僅需整數參數。 networkSSID是一個字符串值。這是錯誤的原因。我看到你正在使用SSID,這是一個字符串。您必須提供整數的網絡ID。你可以試試getConnectionInfo().getSSID()並與你的ssid進行比較,如果它們相同,那麼你可以嘗試獲得getConnectionInfo().getNetoworkId()這應該給連接的網絡的網絡ID,你可以用它來刪除網絡。

試試這個:

public class KillTimer extends Activity { 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.killtimer); 
      WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
      int networkId = wifiManager.getConnectionInfo().getNetworkId(); 
      wifiManager.removeNetwork(networkId); 
      wifiManager.saveConfiguration(); 
     }} 
+0

我其實並不需要硬編碼要刪除特定的SSID - 我只是想刪除哪個SSID當前所連接。我上面更新了我的源代碼(我省略了你提到的創建的部分來比較它們 - 因爲我想簡單地斷開連接的任何一個)你可以看一看,看看我目前的實現對你來說是否正確? –

+0

[我真的很感謝你的幫助!] –

+0

你的大部分都是正確的。嘗試編輯回覆中的代碼 – jaga

2
private void RemoveWifiNetworks() { 

    WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 

    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
    for (WifiConfiguration i : list) { 
     //int networkId = wifiManager.getConnectionInfo().getNetworkId(); 
     wifiManager.removeNetwork(i.networkId); 
     wifiManager.saveConfiguration(); 
    } 

} 
相關問題