2011-05-26 11 views
7

मुझे आश्चर्य है कि कुछ कोड स्निपेट हैं जिनका उपयोग एंड्रॉइड डिवाइस को वाईफाई नेटवर्क से कनेक्ट करने के लिए किया जा सकता है। नेटवर्क या तो खुला या WEP/WPA encypted होना चाहिए, और उस डिवाइस के लिए दृश्यमान होना चाहिए। आम तौर पर, हम वाईफाई पासवर्ड इनपुट करने के लिए जीयूआई इंटरफ़ेस का उपयोग करते हैं और कनेक्ट बटन टैप करते हैं। मैं पासवर्ड को किसी स्थान पर संग्रहीत करना चाहता हूं, और मानव संपर्क के बिना नेटवर्क से कनेक्ट करने के लिए पासवर्ड का उपयोग करना चाहता हूं। क्या यह संभव है? बहुत बहुत धन्यवाद।एंड्रॉइड बिना किसी इंटरेक्शन के वाईफाई से कनेक्ट

उत्तर

2

WifiManager - क्या आपने यहां देखने की कोशिश की है। addNetwork() विधि ऐसा लगता है कि यह वही कर सकता है जो आप करना चाहते हैं। आपको बस इतना करना है कि जानकारी WifiConfiguration कक्षा में रखें और फिर नेटवर्क जोड़ें, फिर उस कनेक्शन को सक्षम करें। दस्तावेज़ीकरण सब वहाँ है।

1

चेकआउट "WifiManager"

के लिए प्रलेखन यह वाईफ़ाई सक्षम करने के लिए इस्तेमाल किया जा सकता:

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true); 

और यह कई अन्य काम करने के लिए इस्तेमाल किया जा सकता।

संपादित करें: जब निगरानी और वाईफाई राज्य बदल रहा है अपने अनुमतियां अपडेट करने के लिए मत भूलना, उदाहरण:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 

आदि ...

14

धन्यवाद दोस्तों। आपकी मदद से, अब मैं दर्द के बिना एक डब्ल्यूपीए/पीएसके एन्क्रिप्टेड नेटवर्क से कनेक्ट करने में सक्षम हूं।

 WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     // setup a wifi configuration 
     WifiConfiguration wc = new WifiConfiguration(); 
     wc.SSID = "\"YOUR_SSID\""; 
     wc.preSharedKey = "\"YOUR_PASSWORD\""; 
     wc.status = WifiConfiguration.Status.ENABLED; 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
     wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
     wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
     wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
     wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
     // connect to and enable the connection 
     int netId = wifiManager.addNetwork(wc); 
     wifiManager.enableNetwork(netId, true); 
     wifiManager.setWifiEnabled(true); 

चालें हैं:: यहाँ मेरी कोड स्निपेट है

  • SSID तार के साथ घेर लिया जाना चाहिए "है, जो \ से दर्शाया जाता है"
  • addNetwork() विधि डिफ़ॉल्ट रूप से जोड़ा नेटवर्क अक्षम कर देता है , इसलिए आपको इसे सक्षम नेटवर्क() विधि के साथ सक्षम करना चाहिए।
+0

यह मेरी समस्या हल हो गया! धन्यवाद – Shatazone

+0

कमाल का समाधान! कोई भी विचार कैसे पता लगाया जाए कि दर्ज पासवर्ड गलत है या नहीं? मैंने कोशिश करने की कोशिश करने की कोशिश की, लेकिन यह काम नहीं कर रहा है, पासवर्ड वाईफाई नेटवर्क में सहेजा गया है, और इसे फिर से कनेक्ट करने का एकमात्र तरीका नेटवर्क को भूलना या पासवर्ड बदलना है – Zame

3

ऑप्स नमूना कोड काम करने के लिए, मैं एक और पंक्ति जोड़ने के लिए किया था: उस रेखा यह सिर्फ नेटवर्क से कनेक्ट नहीं होगा बिना

wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 

। कॉन्फ़िगरेशन स्वीकार और जोड़ा जाता है, लेकिन कोई कनेक्शन प्रयास नहीं किए जाते हैं।

Event [WPA: Failed to select WPA/RSN] android 

जो मुझे अंतिम समाधान के लिए रखा, पता लगाना कारण है कि यह मेरे लिए काम नहीं किया: मैं वास्तव में logcat विंडो में निम्न संदेश मिला।

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