खोलने के लिए कनेक्ट करें मैं एन्क्रिप्टेड नेटवर्क से कनेक्ट करने के लिए नीचे दिए गए कोड का उपयोग करता हूं। हालांकि यदि कोई नेटवर्क असुरक्षित है और मैं कुंजी खाली छोड़ देता हूं ("") तो यह विफल हो जाता है। क्या किसी को यह पता है कि इसे कैसे हल किया जाए? इसके अलावा यह पता लगाना संभव है कि एसएसआईडी/बीएसएसआईडी का उपयोग कर नेटवर्क खुलता है या नहीं? या मुझे फ़िल्टर के साथ स्कैन करना है?वाईफाई
public void connectToSSID(final String ssid, final String key) {
Log.i("wifimaster", "connection to "+ssid);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\""+ssid+"\""; //IMPORTANT! This should be in Quotes!!
wc.priority = 40;
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wc.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.preSharedKey = "\""+key+"\"";
wc.wepKeys[0] = "\""+key+"\""; //This is the WEP Password
wc.wepTxKeyIndex = 0;
wc.preSharedKey = "\""+key+"\"";
int res = wifiManager.addNetwork(wc);
Log.d("WifiPreference", "add Network returned " + res);
boolean es = wifiManager.saveConfiguration();
Log.d("WifiPreference", "saveConfiguration returned " + es);
boolean b = wifiManager.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b);
if(b)
Toast.makeText(c, c.getString(R.string.connected), Toast.LENGTH_SHORT).show();
else
Toast.makeText(c, c.getString(R.string.unconnected), Toast.LENGTH_SHORT).show();
}
क्या आपके पास * केवल * एसएसआईडी से एन्क्रिप्शन विधि कैसे प्राप्त करें इस पर कोई कोड है? – bluewhile
नहीं। आपको केवल एसएसआईडी से एन्क्रिप्शन विधि नहीं मिल रही है। आपको नेटवर्क के लिए स्कैन करना होगा और सभी उपलब्ध नेटवर्क प्राप्त करने के लिए स्कैनरसेट का उपयोग करना होगा। फिर दिए गए एसएसआईडी के साथ अपने नेटवर्क की खोज करें और इसकी एन्क्रिप्शन विधि पाएं। यहां एक लिंक है: http://stackoverflow.com/a/12747455/1117338 और http://developer.android.com/reference/android/net/wifi/ScanResult.html#capabilities –