我想获得WIFI连接使用的IP(不是3G)。有谁知道怎么做? 我用过:
public 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) {
Log.e(LOG_TAG, ex.toString());
}
return null;
}
但它会在ICS上返回3G IP。
谢谢,
亚历
答案 0 :(得分:0)
WifiInfo winfo = ((WifiManager)this.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo();
winfo.getIpAddress();
在执行上述操作之前,您可能需要检查是否已连接到Wifi
答案 1 :(得分:0)
您无法检测基于IP地址的连接类型,因为您的移动网络和家庭WiFi网络都可以分配私有IP地址。
您需要做的是首先检测您是否拥有移动网络或WiFi连接,然后根据该信息获取该连接的IP地址。
在SO中查看此thread与ICS上的问题相同