2011-06-16 7 views
6

मेरे पास एक श्रोता कनेक्टिविटी परिवर्तनों के लिए सुन रहा है, खासकर जीएसएम से वाईफ़ाई तक। अब मैं लॉग इन करना चाहता हूं कि वाईफ़ाई के उपयोगकर्ता कौन से वाईफ़ाई कनेक्ट करता है, विशेष रूप से एन्क्रिप्शन प्रकार (कोई भी, WEP, WPA, WPA2, ...)।एंड्रॉइड: वर्तमान वाईफाई एन्क्रिप्शन कैसे प्राप्त करें?

श्रोता पूरी तरह से काम करता है, लेकिन मुझे वर्तमान वाईफ़ाई के एन्क्रिप्शन प्रकार को प्राप्त करने का कोई तरीका नहीं मिल रहा है।

आपकी मदद के लिए धन्यवाद।

उत्तर

7

उपयोग WifiManager वर्तमान कनेक्शन का विवरण प्राप्त करने के लिए, और फिर एक WifiConfiguration जो आप अधिक जानकारी देना चाहिए प्राप्त करते हैं।

WifiManager wifiManager= (WifiManager) getSystemService(Context.WIFI_SERVICE); 
WifiInfo wi = WifiManager.getConnectionInfo(); 
if(wi != null) 
{ 
    WifiConfiguration activeConfig = null; 
    for(WifiConfiguration conn : wifiManager.getConfiguredNetworks()) 
    { 
     if(conn.status == WifiConfiguration.Status.CURRENT) 
     { 
      activeConfig = conn; 
      break; 
     } 
    } 
    if(activeConfig != null) 
    { 
     // Analyse encryption of connected network here. 
    } 
} 
+0

धन्यवाद! मैंने पाया कि, लेकिन ऐसा लगता है कि वाईफाई कॉन्फ़िगरेशन को पाने का एकमात्र तरीका WindowManager.getConfiguredNetworks() है जो एक सूची देता है। अब मैं वर्तमान वाईफाई यानी बीएसएसआईडी के माध्यम से प्राप्त कर सकता हूं, या वर्तमान में कनेक्टेड नेटवर्क हमेशा सूची में पहला है? – Tobi

+3

आपकी मदद के लिए धन्यवाद, मार्क। मुझे वाईफ़ाई कॉन्फ़िगरेशन.स्टैटस ध्वज के माध्यम से, वर्तमान वाईफाई प्राप्त करने का एक और तरीका मिला। यह WifiConfiguration.Status.CURRENT – Tobi

+0

के बराबर है! मुझे लगता है कि के बारे में पता नहीं था। यह कोड थोड़ा और अधिक कुशल बनाना चाहिए। यदि आपको यह उपयोगी लगता है तो कृपया उत्तर को "स्वीकार करें"। –