【发布时间】:2013-07-18 11:19:13
【问题描述】:
您好,我正在使用下面的代码获取android设备的IP地址,
private String returnIPAdrress()
{
String IPAddress = null;
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())
{
IPAddress = inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex)
{
Log.e("ServerActivity", ex.toString());
return null;
}
return IPAddress;
}
当我在 Galaxy 平板电脑 (os=2.3) 上对其进行测试时,它运行良好,并为我提供了有效的 IP 地址。
我已经在模拟器(os=2.2)上对其进行了测试,它给我的 IP 地址为 10.0.2.15,我猜这也是有效的。
但是当在 Micromax canvas(os=4.1) 上运行它时,它给我的 IP 地址为 fe80::d0b3:3fff:fe9d:f68c%p2p0 这是错误的.
是因为操作系统版本不同吗?
我该如何解决这个问题?
【问题讨论】:
-
它是一个 IPV6 地址。看起来
JellyBean默认使用 ipv6。 -
@S.D:thanks..我将检查其他 android 版本
标签: android networking ip