2013-04-17 28 views
7

私はプログラムでWiFiネットワークを削除しようとしていますが、 /現在接続されているWi-Fi接続を忘れてしまいます。これは非常に簡単な作業でなければならないので、間違っていることを正確には分かりません。Android - プログラムでWifiネットワークを削除する - WifiManagerタイプのremoveNetwork(int)メソッドは引数(String)に適用されません

私は、一例として、以下の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と比較することができます。同じ場合は、接続ネットワークのネットワークIDを与えるgetConnectionInfo().getNetoworkId()を取得してみてください。これを使用してremoveNetworkを使用できます。

これを試してみてください:

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(); 
    } 

} 
関連する問題