我正在编写一个需要根据用户选择连接到不同 Wifi 网络的 Android 应用程序。我需要从 networkInfo 中检索网关 IP 地址。我面临的问题是,如果我连接到 wifi 网络配置 A,然后想切换到网络配置 B,wifi.getDhcpInfo(); 返回网络 A 的网关 IP 地址。通过用户界面工作流程多次尝试后,最终返回网络 B 的网关 IP。代码片段如下。如何确定新启用的网络何时返回准确的 Dhcp 信息以便我能够可靠地获取它的任何想法。有没有我可以捕捉到的异步事件等等。谢谢。
WifiConfiguration config = wifiConfiguredNetworks.get(SSID);
enableNetworkResult = false;
enableNetworkResult = wifi.enableNetwork(config.networkId,true);
if (enableNetworkResult == true) {
this.networkInfo = wifi.getDhcpInfo(); // does not return proper IP info
this.DeviceIP = android.text.format.Formatter.formatIpAddress(networkInfo.gateway);
}