Ответ 1
1. Проверить доступность подключения к Интернету
Чтобы проверить, подключен ли Интернет или не использует метод GetIsNetworkAvailable
класса NetworkInterface
.
bool isInternetConnected = NetworkInterface.GetIsNetworkAvailable();
GetIsNetworkAvailable() -
Сводка: Указывает, доступно ли какое-либо сетевое подключение.
Возвращает:true
, если доступно сетевое соединение; в противном случаеfalse
.
2. Проверьте доступность подключения к Интернету через WWLN (WiFi)
Чтобы проверить, подключен ли к интернету через WWAN IsWlanConnectionProfile
свойство ConnectionProfile
class
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWlanConnectionProfile;
IsWlanConnectionProfile
Сводка: Получает значение, указывающее, является ли профиль подключения WLAN (WiFi). Это определяет, действительно ли WlanConnectionProfileDetails - null.
Возвращает: Указывает, является ли профиль подключения WLAN (WiFi).
3. Проверьте доступность подключения к Интернету через WWAN (мобильный)
Чтобы проверить, подключен ли интернет через WWAN, используйте свойство IsWwanConnectionProfile
класса ConnectionProfile
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWwanConnectionProfile;
IsWwanConnectionProfile
Сводка: Получает значение, указывающее, является ли профиль подключения WWAN (мобильным) соединением. Это определяет, является ли WwanConnectionProfileDetails нулевым.
Возвращает: Указывает, представляет ли профиль подключения WWAN (мобильное) соединение.
Ссылка
Ответ на Hippiehunter
4. Проверить измеренную сеть
Чтобы проверить, доступен ли доступ в Интернет через дозируемое соединение или нет, используйте метод GetConnectionCost
в классе NetworkInterface
.
var connectionCost = NetworkInformation.GetInternetConnectionProfile().GetConnectionCost();
if (connectionCost.NetworkCostType == NetworkCostType.Unknown
|| connectionCost.NetworkCostType == NetworkCostType.Unrestricted)
{
//Connection cost is unknown/unrestricted
}
else
{
//Metered Network
}
Ссылка (более подробный ответ здесь)
1. https://msdn.microsoft.com/en-us/library/windows/apps/xaml/JJ835821(v=win.10).aspx
2. https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.networking.connectivity.networkcosttype.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
5. Управление изменениями доступности сети
Чтобы оценить существенные изменения доступности сети, используйте событие NetworkStatusChanged
NetworkInformation
class
// register for network status change notifications
networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
if (!registeredNetworkStatusNotif)
{
NetworkInformation.NetworkStatusChanged += networkStatusCallback;
registeredNetworkStatusNotif = true;
}
async void OnNetworkStatusChange(object sender)
{
// get the ConnectionProfile that is currently used to connect to the Internet
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (InternetConnectionProfile == null)
{
await _cd.RunAsync(CoreDispatcherPriority.Normal, () =>
{
rootPage.NotifyUser("Not connected to Internet\n", NotifyType.StatusMessage);
});
}
else
{
connectionProfileInfo = GetConnectionProfile(InternetConnectionProfile);
await _cd.RunAsync(CoreDispatcherPriority.Normal, () =>
{
rootPage.NotifyUser(connectionProfileInfo, NotifyType.StatusMessage);
});
}
internetProfileInfo = "";
}
Ссылки
https://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj835820.aspx
https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452991.aspx
http://www.developerinsider.in/2016/03/13/check-internet-connectivity-in-uwp/
Надеюсь, что это поможет кому-то.