WIFI नेटवर्क कनेक्ट करने से पहले आपको सुरक्षा प्रकार की जांच करने की आवश्यकता है WIFI नेटवर्क ScanResult वर्ग की क्षमताएं हैं। यह क्षेत्र आपको नेटवर्क का प्रकार देता है
देखें: https://developer.android.com/reference/android/net/wifi/ScanResult.html###
कर रहे हैं तीन प्रकारWIFI नेटवर्क के ।
सबसे पहले, WifiConfiguration ऑब्जेक्ट को झटपट करें और नेटवर्क के SSID (ध्यान दें कि इसे दोहरे उद्धरण चिह्नों में संलग्न करना है) भरें, प्रारंभिक अवस्था को अक्षम करने के लिए सेट करें, और नेटवर्क की प्राथमिकता निर्दिष्ट करें (संख्या 40 के आसपास अच्छी तरह से काम करती हैं)।
WifiConfiguration wfc = new WifiConfiguration();
wfc.SSID = "\"".concat(ssid).concat("\"");
wfc.status = WifiConfiguration.Status.DISABLED;
wfc.priority = 40;
अब अधिक जटिल भाग के लिए: हमें नेटवर्क के सुरक्षा मोड को निर्दिष्ट करने के लिए WifiConfiguration के कई सदस्यों को भरने की आवश्यकता है। ओपन नेटवर्क के लिए।
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedAuthAlgorithms.clear();
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
WEP का उपयोग करने वाले नेटवर्क के लिए; ध्यान दें कि WEP कुंजी भी दोहरे उद्धरण चिह्नों में संलग्न है।
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wfc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
if (isHexString(password)) wfc.wepKeys[0] = password;
else wfc.wepKeys[0] = "\"".concat(password).concat("\"");
wfc.wepTxKeyIndex = 0;
WPA और WPA2 का उपयोग करने वाले नेटवर्कों के लिए, हम या तो समान मान सेट कर सकते हैं।
wfc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wfc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wfc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wfc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wfc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wfc.preSharedKey = "\"".concat(password).concat("\"");
अंत में, हम नेटवर्क को WifiManager की ज्ञात सूची में जोड़ सकते हैं
WifiManager wfMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int networkId = wfMgr.addNetwork(wfc);
if (networkId != -1) {
// success, can call wfMgr.enableNetwork(networkId, true) to connect
}