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; } 
  • Cómo Wifi y los datos móviles trabajan simultáneamente en android para el dispositivo OBD2
  • Excepción de seguridad al acceder al wifi en android
  • Solucionar 'la aplicación ha detenido' los errores de error
  • Escuchando en un puerto específico para los datos entrantes
  • Compruebe la disponibilidad de la red wifi oculta
  • gama de distancias en las que trabaja directamente Wi-Fi
  • ¿Cómo obtener la fuerza de conexión de los puntos de acceso Wifi?
  • Android verificar el estado WIFI (desconectado o el usuario ha cambiado WIFI) ¿Cómo FLAG?
  • Forzar Android a usar 3G cuando en el área local wifi sin acceso a la red
  • Android - ¿es posible tener conexiones 3G y Wifi al mismo tiempo?
  • 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.