Xamarin.Essentials: ConnectivitéXamarin.Essentials: Connectivity

La classe Connectivité vous permet de surveiller les modifications des conditions réseau de l’appareil, l’accès au réseau actuel et le mode de connexion actuel.The Connectivity class lets you monitor for changes in the device's network conditions, check the current network access, and how it is currently connected.

Prise en mainGet started

Pour commencer à utiliser cette API, lisez le Guide de prise en main de Xamarin.Essentials pour vérifier que la bibliothèque est correctement installée et configurée dans vos projets.To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Pour accéder à la fonctionnalité Connectivité, la configuration suivante spécifique à la plateforme est requise.To access the Connectivity functionality the following platform specific setup is required.

L’autorisation AccessNetworkState est obligatoire, et doit être configurée dans le projet Android.The AccessNetworkState permission is required and must be configured in the Android project. Vous pouvez l’ajouter des façons suivantes :This can be added in the following ways:

Ouvrez le fichier AssemblyInfo.cs sous le dossier Propriétés et ajoutez :Open the AssemblyInfo.cs file under the Properties folder and add:

[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]

OU mettez à jour le manifeste Android :OR Update Android Manifest:

Ouvrez le fichier AndroidManifest.xml sous le dossier Propriétés et ajoutez ce qui suit dans le nœud du manifeste.Open the AndroidManifest.xml file under the Properties folder and add the following inside of the manifest node.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Ou cliquez avec le bouton droit sur le projet Android et ouvrez les propriétés du projet.Or right click on the Android project and open the project's properties. Sous Manifeste Android recherchez la zone Autorisations requises : et vérifiez l’autorisation État d’accès réseau.Under Android Manifest find the Required permissions: area and check the Access Network State permission. Cela entraîne la mise à jour automatique du fichier AndroidManifest.xml.This will automatically update the AndroidManifest.xml file.

Utilisation de ConnectivitéUsing Connectivity

Ajoutez une référence à Xamarin.Essentials dans votre classe :Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

Vérifier l’accès réseau actuel :Check current network access:

var current = Connectivity.NetworkAccess;

if (current == NetworkAccess.Internet)
{
    // Connection to internet is available
}

L’accès réseau est réparti dans les catégories suivantes :Network access falls into the following categories:

  • Internet : accès local et Internet.Internet – Local and internet access.
  • ConstrainedInternet : accès Internet limité.ConstrainedInternet – Limited internet access. Indique la connectivité au portail captive, où un accès local à un portail web est fourni, mais l’accès à Internet nécessite que des informations d’identification spécifiques soient fournies via un portail.Indicates captive portal connectivity, where local access to a web portal is provided, but access to the Internet requires that specific credentials are provided via a portal.
  • Local : accès au réseau local uniquement.Local – Local network access only.
  • Aucun : aucune connectivité n’est disponible.None – No connectivity is available.
  • Inconnu : impossible de déterminer la connectivité Internet.Unknown – Unable to determine internet connectivity.

Vous pouvez vérifier le type de profil de connexion utilisé activement par l’appareil avec ce qui suit :You can check what type of connection profile the device is actively using:

var profiles = Connectivity.ConnectionProfiles;
if (profiles.Contains(ConnectionProfile.WiFi))
{
    // Active Wi-Fi connection.
}

Dès que le profil de connexion ou l’accès réseau change, vous pouvez recevoir un événement lors du déclenchement :Whenever the connection profile or network access changes you can receive an event when triggered:

public class ConnectivityTest
{
    public ConnectivityTest()
    {
        // Register for connectivity changes, be sure to unsubscribe when finished
        Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
    }

    void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
    {
        var access = e.NetworkAccess;
        var profiles = e.ConnectionProfiles;
    }
}

LimitationsLimitations

Il est important de noter qu’il est possible que Internet soit signalé par NetworkAccess mais l’accès complet sur le web n’est pas disponible.It is important to note that it is possible that Internet is reported by NetworkAccess but full access to the web is not available. En raison du fonctionnement de la connectivité sur chaque plateforme, seul le fait qu’une connexion est disponible peut être garanti.Due to how connectivity works on each platform it can only guarantee that a connection is available. Par exemple, l’appareil peut être connecté à un réseau Wi-Fi, mais le routeur est déconnecté d’Internet.For instance the device may be connected to a Wi-Fi network, but the router is disconnected from the internet. Dans cet exemple, Internet peut être signalé, mais une connexion active n’est pas disponible.In this instance Internet may be reported, but an active connection is not available.

APIAPI

Retrouvez d’autres vidéos Xamarin sur Channel 9 et YouTube.Find more Xamarin videos on Channel 9 and YouTube.