How to get name of wifi-network out of android using android API?

AndroidWifiAndroid Wifi

Android Problem Overview


I thought that I should use NetworkInterface::getDisplayName. I got some name, but this name is different that this name which I can see, when I choosing to which network I want to connect.

Android Solutions


Solution 1 - Android

android.net.wifi.WifiInfo.getSSID?


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

Solution 2 - Android

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;
}

Solution 3 - Android

This (mix and match of various answers from Marakana and others) will simultaneously get everything you want to extract from:

  1. all wifi routers in range

  2. connected wifi router

  3. all stored wifi networks (on your device)

     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;
     }
    

DISCLAIMER: while this is working code, not pseudo code, its only purpose is to illustrate the methods for data extraction from wifi connections and it should be adapted (and cleaned) before use.

Solution 4 - Android

Simple as 2 lines

WifiManager w=(WifiManager)getSystemService(Context.WIFI_SERVICE);
String wifi=w.getConnectionInfo().getSSID();

Remember to put this in your Manifest

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnoisyView Question on Stackoverflow
Solution 1 - AndroidLoxleyView Answer on Stackoverflow
Solution 2 - Androidsergey.nView Answer on Stackoverflow
Solution 3 - Androidtony gilView Answer on Stackoverflow
Solution 4 - AndroidPYKView Answer on Stackoverflow