나는 안드로이드 4.0.3에 문제가있다. 아래의 방법을 사용하여 로컬 IP를 얻고 있습니다 :안드로이드 4.0.3 점점 로컬 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()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
ex.printStackTrace();
}
return null;
}
그것은 android v2.1-2.3에서 훌륭하게 작동합니다. 하지만 안드로이드 4.0.3 에뮬레이터에서 그것은 맥 주소와 같은 것을 반환합니다 : fe80 :: fad0 : bdff : fe4d : 4871 아무도 무슨 일이 일어 났는지 설명 할 수 있습니까?
(!이 inetAddress.isLoopbackAddress() &&! isIPV6 (InetAddress를)) –
확인의
– Calvin어떻게 할 수있는 경우 IPv4로 변환합니까? – Nolesh