Получить по умолчанию Gateway программным путем с помощью getHostAddress () из класса InetAddress

Я хочу получить программный шлюз по умолчанию в Android. Сначала я нашел следующее решение: IP-адрес маршрутизатора в коде, на который ответил @Sandeep

Тогда я понял, что форматIpAddress устарел. Как описано в документации: Мы можем getHostAddress()

Я также подумал, что лучше, так как мне может не понадобиться добавлять новые разрешения для моего приложения, как @Sandeep, упомянутые в его ответе:

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

Я использовал следующее решение для get default gateway например, упомянутого в: Как получить шлюз по умолчанию с использованием Ethernet, а не Wi-Fi

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

Это решение не будет возвращать шлюз по умолчанию для dhcp.gateway . Но тогда как я могу получить шлюз по умолчанию в качестве документации, упомянутой с помощью getHostAddress() ?

Добавления :

Как упоминается в комментарии по IP-адресу маршрутизатора в коде, на который отвечает @Sandeep , что делать , если я отключил DHCP ? DhcpInfo не будет работать так, как я ожидал.