사용자의 선택에 따라 다른 Wi-Fi 네트워크에 연결해야하는 Android 애플리케이션을 작성 중입니다. networkInfo에서 게이트웨이 IP 주소를 검색해야합니다. 내가 직면하고있는 문제는 Wi-Fi 네트워크 구성 A에 연결되어 있고 네트워크 구성 B로 전환하려는 경우 wifi.getDhcpInfo(); 네트워크 A의 게이트웨이 IP 주소로 돌아갑니다. 사용자 인터페이스 워크 플로를 통해 여러 번 시도한 후에 결국 네트워크 B의 게이트웨이 IP를 반환합니다. 코드 스 니펫은 아래에 있습니다. 어떤 아이디어를 어떻게 새로 결정한 네트워크가 정확한 DHCP 정보를 반환 할 것인지 결정하여 안정적으로 얻을 수 있습니다. 예를 들어 잡을 수있는 ansynchronous 이벤트가 있습니까? 감사합니다. WIFI_STATE_CHANGED을 들으면서Android의 wifi.getDhcpInfo()가 잘못된 IP 게이트웨이를 반환합니다.
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);
}
작동하지 않습니다. 와이파이에서 다른 와이파이로 전환 할 때, 요청자 상태가 '완료'로 변경되기 전에도 'WIFI_STATE_ENABLED'가 수신됩니다. 그리고 그 후에도'getDhcpInfo()'는 여전히 연결이 끊어진 무선 랜의 값을 반환합니다. 몇 초 후에 만 적절한 값을 반환합니다. – Paramaeleon