Asu*_*tes 18 networking android ip-address
有没有办法我可以同时获取Android中的WiFi和蜂窝网络的IP地址.我尝试使用很多例子,但能够获得只有WiFi网络而不是蜂窝网络的地址.我已启用WiFi和蜂窝网络设备可通过WiFi访问Internet.
这是我用来获取IP地址的代码:
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();
Log.i("Here is the Address",ipAddress);
}
}
}
} catch (SocketException ex) {
}
Run Code Online (Sandbox Code Playgroud)
当设备连接到WiFi时,是否有可能获得蜂窝网络的IP地址.如果是,那么这是可行的.
Aen*_*don 14
每当您在设备上启用WiFi并且与WiFi网络建立有效连接时,无论您是否手动启用移动数据,都会暂时禁用您的移动数据.如果您没有活动的WiFi连接,则仅考虑"移动数据开/关"设置.
一些自定义ROM可以选择在连接到WiFi时保持移动连接处于活动状态(因此,如果您丢失了WiFi连接,它会更快地切换到移动设备),但仍然使用WiFi连接.
结论:由于无法同时启用WiFi和移动网络,因此无法同时获取这两个IP地址(如果可以,则只能主动使用WiFi)
试试这可能是有帮助的.....
对于移动IP地址.....
public static String getMobileIPAddress() {
try {
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
for (InetAddress addr : addrs) {
if (!addr.isLoopbackAddress()) {
return addr.getHostAddress();
}
}
}
} catch (Exception ex) { } // for now eat exceptions
return "";
}
Run Code Online (Sandbox Code Playgroud)
对于Wifi IP地址....
public String getWifiIPAddress() {
WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
return Formatter.formatIpAddress(ip);
}
Run Code Online (Sandbox Code Playgroud)
将此权限包含在您的清单中....
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)
像这样使用....
String wifiIp = getWifiIPAddress();
String mobileIp = getMobileIPAddress();
Run Code Online (Sandbox Code Playgroud)
你得到像这样的输出......
Possibally是如何获取设备的IP地址的公告
| 归档时间: |
|
| 查看次数: |
10690 次 |
| 最近记录: |