有没有一种方法,通过它,我可以同时在Android的WiFi和Hive网络的IP地址.我尝试使用许多例子,但能够得到只有WiFi网络的地址,而不是Hive网络.我已经启用了WiFi和Hive网络和设备是通过WiFi上网.
下面是我用来获取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) {
}
当设备连接到WiFi时,是否可以获得Hive网络的IP地址。如果是,这是如何可行的。
6条答案
按热度按时间zbwhf8kr1#
当您在设备上启用WiFi并与WiFi网络保持活动连接时,无论您是否手动启用,您的移动的数据都将 * 暂时禁用 *。设置“移动的数据开/关”仅在您没有活动的WiFi连接时才被考虑。
一些自定义ROM有一个选项,以保持移动的连接活着,当你连接到WiFi(所以,如果你失去了你的WiFi连接,它切换到移动的更快),但仍然,WiFi连接使用。
**结论:**您无法同时获得两个IP地址,因为您无法同时打开WiFi和移动的网络(如果可以,您只能主动使用WiFi)
eh57zj3b2#
试试这个可能会有帮助...
对于移动的IP地址.
对于Wifi IP地址.
将此权限包含到您的清单中....
像这样使用……
你会得到这样的输出......
可能是How to get IP address of the device的复制品
erhoui1w3#
ttisahbt4#
在java代码中使用以下代码:
不要忘记在Android Manifest文件中添加此权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
来源:Get Wifi IP Address
希望能帮上忙!祝你好运!
o4hqfura5#
当您的WiFi启用并连接时,您将无法获得Hive连接的IP。这是因为系统不使用Hive数据连接节省电池的原因。虽然您可以同时启用这两个选项,但系统一次只能使用一个。这就像:两个都是允许的,但只有一个被使用。
我能想到的只有一个例子:当你通过WiFi连接到没有互联网接入的网络时,你的手机也会通过Hive网络连接。
jtoj6r0c6#
在最新的Pixels运行Android 13,开发者选项有一个“移动的数据始终活动”切换(“快速网络切换”),因此/system/bin/ifconfig [-S]报告在root设备上的rmnet(Hive数据)和wlan(wifi)地址。因此,当wifi连接并处于活跃使用状态时,rmnet地址也是活跃的,您可以成功地从远程设备ssh到Pixel的rmnet地址,根据APN(接入点名称)协议,可以是IPv4或IPv6,而不会影响主要的wifi连接。当然,诀窍在于知道rmnet地址是什么,特别是在IPv6地址不断变化的情况下。电话必须以某种方式将其报告给远程设备。