Изнутри моей деятельности я пытаюсь получить IP-адрес своего устройства. Я использую следующий код, чтобы сделать это:Получить IP-адрес устройства
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;
}
Но эта функция не возвращает мне правильный адрес IP (возможно его возвращение маршрутизатора IP, а не прокси IP-дал для моего устройства). Я просмотрел множество потоков на StackOverflow, но не помог им.
Кроме того, я не планирую использовать:
WifiManager wifiMan = (WifiManager) this.getSystemService(this.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
int ipAddress = wifiInf.getIpAddress();
как в некоторых случаях мои устройства проводной связи и не беспроводной
Может кто-то предложить мне, как получить правильный адрес IP-моего устройства от код?
В идеале, я хотел бы, чтобы погода была связана с проводной/беспроводной связью, она должна предоставить правильный IP-адрес устройства. В некоторых ситуациях мое устройство подключено к сети.
Спасибо за любую помощь.
только в качестве эталона http://itekblog.com/android-get-mobile-ip-address/ – matty357
@ matty357 .. спасибо за ваш комментарий. Как вы можете видеть в моем вопросе, что я использовал и то, что было предложено в вашей рекомендуемой ссылке, но они не решают мою цель по причинам, о которых идет речь. – Sushil