Detectar la dirección IP wifi en Android?

Necesito determinar si el dispositivo Android está conectado a Wifi, y si es así, obtenga su dirección IP Wifi.

Sé cómo utilizar ConnectivityManager para determinar si la red activa es una red Wifi, y sé cómo utilizar java.net.NetworkInterface para iterar sobre las interfaces de red disponibles y obtener sus direcciones IP.

Lo que no sé hacer es determinar qué dirección IP pertenece a la red Wifi, si hay más de una dirección encontrada. ¿Algún consejo?

Gracias.

public String getIpAddr() { WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ip = wifiInfo.getIpAddress(); String ipString = String.format( "%d.%d.%d.%d", (ip & 0xff), (ip >> 8 & 0xff), (ip >> 16 & 0xff), (ip >> 24 & 0xff)); return ipString; } 

Nota : Es necesario agregar android.permission.INTERNET y android.permission.ACCESS_WIFI_STATE en su AndroidManifest.xml como <user-permission/> para acceder al código.

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

Prueba este código.

 ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); //To fetch the state of the Wi-Fi network in the device Boolean isWifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting(); WifiManager wifiMgr = (WifiManager) getBaseContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiMgr.getConnectionInfo(); //To fetch the name of the Wi-Fi network to which the device is connected String wifiName = wifiInfo.getSSID(); 
 static final int IP_ADDRESS_LENGTH = 32; public static Integer getSystemWifiIpAddress(Context context) { WifiManager wManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo wInfo = wManager.getConnectionInfo(); int ipAddress = wInfo.getIpAddress(); if (ipAddress == 0) return null; return ipAddress; } 
  • Manteniendo Wifi-Direct activado en dispositivos AOSP
  • ¿Cómo hacer un peer androide a peer sin utilizar el servidor intermedio?
  • ¿Permitir que dos dispositivos se vean en Android usando la interfaz wifi?
  • Problema al conectar la aplicación de Android al socket mediante la conexión de celda
  • ¿Cómo distinguir entre diferentes redes wifi?
  • Cómo recibir ICS Wi-Fi hotspot enale / disable vía broadcastreceiver
  • Android / Java cómo saber el tipo de radio de wifi conectado
  • Wi-Fi tethering - cómo obtener la lista de clientes conectados
  • ¿Tiene el emulador de dispositivos Android una dirección MAC?
  • ¿Por qué la pila SIP nativa incluida en Android 2.3 no funciona sobre 3g?
  • Eventos de conexión de cliente wifi hotspot de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.