A Microsoft platform for building and publishing apps for Windows devices.
public void NetInfo()
{
//lastTime = DateTimeOffset.Now;
var neti = NetworkInformation.GetInternetConnectionProfile();
NetworkInformation.NetworkStatusChanged += NetworkStatusChanged;
if (neti == null)
{
Comm.inetFlag = false;
SetControlVis(false);
}
else
{
var level = neti.GetNetworkConnectivityLevel();
UpdateNet(level);
}
}
private void NetworkStatusChanged(object sender)
{
if (timer != null)
{
timer.Dispose();
}
InetTimerSetup();
}
private void UpdateNet(NetworkConnectivityLevel level)
{
switch (level)
{
case NetworkConnectivityLevel.InternetAccess:
Comm.inetFlag = true;
SetControlVis(true);
break;
case NetworkConnectivityLevel.LocalAccess:
Comm.inetFlag = false;
SetControlVis(false);
break;
default:
Comm.inetFlag = false;
SetControlVis(false);
break;
}
}
private async void SetControlVis(bool state)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
if (state)
{
Ethernet.Visibility = Visibility.Visible;
Mynet.Visibility = Visibility.Collapsed;
Message.Visibility = Visibility.Collapsed;
ContentGrid.IsEnabled = true;
}
else
{
Ethernet.Visibility = Visibility.Collapsed;
Mynet.Visibility = Visibility.Visible;
ContentGrid.IsEnabled = false;
Message.Visibility = Visibility.Visible;
}
});
}
public void InetTimerSetup()
{
var period = (int)TimeSpan.FromSeconds(8).TotalMilliseconds;
timer = new Timer(TimerAsync, null, period, period);
}
private async void TimerAsync(object state)
{
var neti = NetworkInformation.GetInternetConnectionProfile();
if (neti == null)
{
Comm.inetFlag = false;
SetControlVis(false);
}
else
{
var level = neti.GetNetworkConnectivityLevel();
UpdateNet(level);
}
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
if (Comm.inetFlag && Comm.pageType == typeof(NetDown))
{
NavigationService.Navigate(typeof(ContentGridPage));
}
if (!Comm.inetFlag && (Comm.pageType == typeof(ContentGridPage)))
{
NavigationService.Navigate(typeof(NetDown));
}
});
}