Ответ 1
Я не пробовал пространство имен System.Net.NetworkInformation на WP8. Но новое пространство имен Windows Runtime WP8 для Windows.Networking.Connectivity работает нормально.
Используйте Windows.Networking.Connectivity.NetworkInformation.NetworkStatusChanged, чтобы знать, когда условия сети меняются и используют свойства Microsoft.Phone.Net.NetworkInformation.NetworkInterface или Windows.Networking.Connectivity.NetworkИнформационные свойства, чтобы увидеть, что происходит.
private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
PrintNetworkStatus();
NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;
}
void NetworkInformation_NetworkStatusChanged(object sender)
{
PrintNetworkStatus();
}
private void PrintNetworkStatus()
{
Dispatcher.BeginInvoke(() =>
MessageBox.Show(NetworkInterface.NetworkInterfaceType +
Environment.NewLine +
NetworkInterface.GetIsNetworkAvailable()));
}
Когда я тестирую этот фрагмент кода на моем WP8 Lumia 920, он работает так, как ожидалось. При запуске, когда мой телефон включен только в WiFi, я вижу следующее MessageBox:
И как только я выключу свой WiFI-маршрутизатор, и Wi-Fi-соединение на телефоне потеряно, я вижу следующее MessageBox: