Obtener la puerta de enlace predeterminada mediante programación utilizando getHostAddress () de la clase InetAddress

Quiero conseguir la entrada de defecto en androide programmatically. Encontré la siguiente solución primero: Dirección IP del enrutador en el código contestado por @Sandeep

Entonces me di cuenta de formatIpAddress está obsoleto. Como documentación descrita: Podemos getHostAddress()

También pensé, es mejor ya que no necesito añadir nuevos permisos a mi aplicación como @Sandeep mencionado en su respuesta:

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

He utilizado la siguiente solución para get default gateway como por ejemplo se menciona en: Cómo obtener la puerta de enlace predeterminada mediante Ethernet, no wifi

 public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { return inetAddress.getHostAddress(); } } } } catch (SocketException ex) { ex.printStackTrace(); } return null; } 

Esta solución no devolverá Default Gateway como dhcp.gateway provisto para mí. ¿Pero entonces cómo puedo conseguir la entrada de defecto como la documentación mencionada usando getHostAddress() ?

Addenda :

Como se menciona en el comentario bajo la dirección IP del enrutador en el código contestado por @Sandeep , ¿qué pasa si deshabilito DHCP ? entonces DhcpInfo no funcionará como esperaba.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.