2013-04-17 5 views
7

के लिए लागू नहीं है मैं प्रोग्रामिंग रूप से अपने वाईफाई नेटवर्क को हटाने का प्रयास कर रहा हूं - हालांकि मुझे इसे हटाने के लिए प्रतीत नहीं होता/वर्तमान में जुड़े वाईफाई कनेक्शन भूल जाओ। यह एक बहुत ही सरल काम होना चाहिए - इसलिए मुझे यकीन नहीं है कि मैं वास्तव में क्या कर रहा हूं।एंड्रॉइड - वाईफाई नेटवर्क को प्रोग्राम से हटाएं- विधि में निकालें नेटवर्क (int) WifiManager तर्क (स्ट्रिंग)

मैं एक उदाहरण के रूप में निम्नलिखित 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 एक स्ट्रिंग मान है। त्रुटि के लिए यही कारण है। मैं देखता हूं कि आप एसएसआईडी का उपयोग कर रहे हैं जो एक स्ट्रिंग है। आपको नेटवर्क आईडी देना है जो पूर्णांक है। आप getConnectionInfo().getSSID() आज़मा सकते हैं और अपने एसएसआईडी के साथ तुलना कर सकते हैं, यदि वे समान हैं तो आप getConnectionInfo().getNetoworkId() प्राप्त करने का प्रयास कर सकते हैं, जो कनेक्ट नेटवर्क के नेटवर्क आईडी को देना चाहिए, जिसे आप नेटवर्क को हटाने के लिए उपयोग कर सकते हैं।

इस प्रयास करें:

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

} 
संबंधित मुद्दे