2010-08-20 20 views
55

मैंने सोचा कि मुझे नेटवर्कइंटरफेस :: getDisplayName का उपयोग करना चाहिए। मुझे कुछ नाम मिला, लेकिन यह नाम अलग है कि यह नाम जो मैं देख सकता हूं, जब मैं चुनता हूं कि मैं किस नेटवर्क से कनेक्ट करना चाहता हूं।एंड्रॉइड एपीआई का उपयोग कर एंड्रॉइड से वाईफाई नेटवर्क का नाम कैसे प्राप्त करें?

कृपया मदद ..

[संपादित करें]

Loxley जवाब के अनुसार:

WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE); 
WifiInfo wifiInfo = wifiMgr.getConnectionInfo(); 
String name = wifiInfo.getSSID(); 
+2

क्या किसी को पता है कि ऐसा करने के लिए किन अनुमतियों की आवश्यकता है? –

+8

android.permission.ACCESS_WIFI_STATE –

उत्तर

17

इस (मिश्रण और Marakana और दूसरों से विभिन्न उत्तरों की मैच) एक साथ सब कुछ आप से निकालना चाहते हैं मिल जाएगा:

  1. सभी wifi राउटर रेंज में
  2. जुड़े वाईफ़ाई रूटर
  3. सभी संग्रहीत वाईफाई नेटवर्क (अपने डिवाइस पर)

    public String getCurrentSsid(Context context) { 
    
        String ssid = null; 
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
        NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
        if (networkInfo.isConnected()) { 
        final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
        final WifiInfo connectionInfo = wifiManager.getConnectionInfo(); 
        if (connectionInfo != null && !(connectionInfo.getSSID().equals(""))) { 
         //if (connectionInfo != null && !StringUtil.isBlank(connectionInfo.getSSID())) { 
         ssid = connectionInfo.getSSID(); 
        } 
    // Get WiFi status MARAKANA 
        WifiInfo info = wifiManager.getConnectionInfo(); 
        String textStatus = ""; 
        textStatus += "\n\nWiFi Status: " + info.toString(); 
        String BSSID = info.getBSSID(); 
        String MAC = info.getMacAddress(); 
    
        List<ScanResult> results = wifiManager.getScanResults(); 
        ScanResult bestSignal = null; 
        int count = 1; 
        String etWifiList = ""; 
        for (ScanResult result : results) { 
         etWifiList += count++ + ". " + result.SSID + " : " + result.level + "\n" + 
           result.BSSID + "\n" + result.capabilities +"\n" + 
           "\n=======================\n"; 
        } 
        Log.v(TAG, "from SO: \n"+etWifiList); 
    
        // List stored networks 
        List<WifiConfiguration> configs = wifiManager.getConfiguredNetworks(); 
        for (WifiConfiguration config : configs) { 
         textStatus+= "\n\n" + config.toString(); 
        } 
        Log.v(TAG,"from marakana: \n"+textStatus); 
        } 
        return ssid; 
    } 
    

अस्वीकरण: जबकि यह काम कोड है, छद्म कोड नहीं, इसका एकमात्र उद्देश्य वाईफाई कनेक्शन से डेटा निष्कर्षण के तरीकों को चित्रित करना है और इसे उपयोग से पहले अनुकूलित (और साफ) किया जाना चाहिए।

+1

1. मकराना कौन है? 2. जांचें: http://stackoverflow.com/a/16137563/281545 –

+0

@Mr_and_Mrs_D 1. मारकाना कई नमूना परियोजनाओं के लेखक मार्को गर्गेंटा है। 2. जैसा कि मैंने कहा, यह एक मिश्रण और मैच है, जिसमें नमूना कोड शामिल है। :) –

+0

मेरा मतलब था कि इस कोड में एनपीई (ऊपर दिए गए मेरे उत्तर को देखें) –

19
public String getWifiName(Context context) { 
    WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
    if (manager.isWifiEnabled()) { 
     WifiInfo wifiInfo = manager.getConnectionInfo(); 
     if (wifiInfo != null) { 
      DetailedState state = WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()); 
      if (state == DetailedState.CONNECTED || state == DetailedState.OBTAINING_IPADDR) { 
       return wifiInfo.getSSID(); 
      } 
     } 
    } 
    return null; 
} 
संबंधित मुद्दे