您好我正在使用下面的代码来获取 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,这是错误的。
是因为操作系统版本不同吗?
我该如何解决这个问题?