こんにちは、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 キャンバス (os=4.1) で実行すると、IP アドレスが fe80::d0b3:3fff:fe9d:f68c%p2p0として表示されますが、これは間違っています。
OSのバージョンが違うからでしょうか?
どうすればこれを解決できますか?