Je souhaite vérifier le type de connectivité Internet dans l'application universelle Windows.
afin de fournir une option pour télécharger du contenu de grande taille. Et ressentez également les changements importants de disponibilité du réseau.
Actuellement, je ne peux que vérifier si Internet est connecté ou non à l'aide de la méthode GetIsNetworkAvailable
de la classe NetworkInterface
.
NetworkInterface.GetIsNetworkAvailable();
Pour vérifier si Internet est connecté ou non, utilisez la méthode GetIsNetworkAvailable
de la classe NetworkInterface
.
bool isInternetConnected = NetworkInterface.GetIsNetworkAvailable();
GetIsNetworkAvailable () -
Résumé: Indique si une connexion réseau est disponible.
Renvoie:true
si une connexion réseau est disponible; sinon,false
.
Pour vérifier si une connexion Internet via WWAN utilise la propriété IsWlanConnectionProfile
de la classe ConnectionProfile
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWlanConnectionProfile;
IsWlanConnectionProfile
Résumé: Obtient une valeur qui indique si le profil de connexion est une connexion WLAN (WiFi). Cela détermine si WlanConnectionProfileDetails est nul ou non.
Renvoie: Indique si le profil de connexion représente une connexion WLAN (WiFi).
Pour vérifier si une connexion Internet via WWAN utilise la propriété IsWwanConnectionProfile
de la classe ConnectionProfile
ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWwanConnectionProfile;
IsWwanConnectionProfile
Résumé: Obtient une valeur qui indique si le profil de connexion est une connexion WWAN (mobile). Cela détermine si WwanConnectionProfileDetails est nul ou non.
Renvoie: Indique si le profil de connexion représente une connexion WWAN (mobile).
Référence
Réponse Hippiehunter
Pour vérifier si Internet est accessible via une connexion mesurée ou non, utilisez la méthode GetConnectionCost
sur la classe NetworkInterface
.
var connectionCost = NetworkInformation.GetInternetConnectionProfile().GetConnectionCost();
if (connectionCost.NetworkCostType == NetworkCostType.Unknown
|| connectionCost.NetworkCostType == NetworkCostType.Unrestricted)
{
//Connection cost is unknown/unrestricted
}
else
{
//Metered Network
}
Référence (Réponse plus détaillée ici)
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- extrait-1
Pour détecter les changements importants de disponibilité du réseau, utilisez l'événement NetworkStatusChanged
de la classe NetworkInformation
// 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 = "";
}
Références
https://developerinsider.co/check-internet-connectivity-in-uwp/https://msdn.Microsoft.com/en-us/library/ windows/apps/xaml/jj835820.aspxhttps://msdn.Microsoft.com/en-us/library/windows/apps/xaml/hh452991.aspx
J'espère que cela sera utile à quelqu'un.
J'utilise NetworkInformation.GetInternetConnectionProfile().IsWlanConnectionProfile
et IsWwanConnectionProfile
. Si ni l'un ni l'autre n'est true
, cela devrait signifier que vous êtes sur Ethernet ou quelque chose comme ça.
Gardez à l'esprit queGetInternetConnectionProfile()
peut retourner null et peut faussement retourner qu'il y a une connexion Internet active lorsque la connexion est active mais DHCP a échoué.