我还没有在 WP8 上尝试过 System.Net.NetworkInformation 命名空间。但是新的 WP8 Windows.Networking.Connectivity Windows Phone 运行时命名空间工作得很好。
使用 Windows.Networking.Connectivity.NetworkInformation.NetworkStatusChanged 了解网络条件何时发生变化,并使用 Microsoft.Phone.Net.NetworkInformation.NetworkInterface 属性或 Windows.Networking.Connectivity.NetworkInformation 属性查看发生了什么。
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 上启动时,我会看到以下消息框:
一旦我关闭我的 WiFi 路由器并且手机上的 WiFi 连接丢失,我会看到以下消息框: