¿Cómo obtener el nombre de la red wifi de Android usando la API de Android?

Pensé que debería usar NetworkInterface :: getDisplayName. Tengo un nombre, pero este nombre es diferente al que puedo ver cuando elijo a qué red me quiero conectar.

Por favor ayuda..

[EDITAR]

de acuerdo con la respuesta de Loxley:

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

android.net.wifi.WifiInfo.getSSID ?

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

Esto (combinación y combinación de varias respuestas de Marakana y otros) obtendrá simultáneamente todo lo que desea extraer de:

  1. todos los enrutadores wifi en rango
  2. enrutador wifi conectado
  3. todas las redes wifi almacenadas (en su dispositivo)

     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 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 configs = wifiManager.getConfiguredNetworks(); for (WifiConfiguration config : configs) { textStatus+= "\n\n" + config.toString(); } Log.v(TAG,"from marakana: \n"+textStatus); } return ssid; } 

DESCARGO DE RESPONSABILIDAD: mientras esto es código de trabajo, no pseudo código, su único propósito es ilustrar los métodos para la extracción de datos de las conexiones wifi y debe ser adaptado (y limpiado) antes de su uso.