Xamarin.Essentials:Connectivité

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.

Bien démarrer

Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.

Pour accéder à la fonctionnalité Connectivité, la configuration suivante spécifique à la plateforme est requise.

L’autorisation AccessNetworkState est obligatoire, et doit être configurée dans le projet Android. Vous pouvez l’ajouter des façons suivantes :

Ouvrez le fichier AssemblyInfo.cs sous le dossier Propriétés et ajoutez :

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

OU mettez à jour le manifeste Android :

Ouvrez le fichier AndroidManifest.xml sous le dossier Propriétés et ajoutez le code suivant à l’intérieur du nœud manifeste .

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

Vous pouvez également cliquer avec le bouton droit sur le projet Android, et ouvrir les propriétés du projet. Sous Manifeste Android recherchez la zone Autorisations requises : et vérifiez l’autorisation État d’accès réseau. Cela entraîne la mise à jour automatique du fichier AndroidManifest.xml.

Utilisation de Connectivité

Ajoutez une référence à Xamarin.Essentials dans votre classe :

using Xamarin.Essentials;

Vérifier l’accès réseau actuel :

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 :

  • Internet : accès local et Internet.
  • ConstrainedInternet : accès Internet limité. 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.
  • Local : accès au réseau local uniquement.
  • Aucun : aucune connectivité n’est disponible.
  • Inconnu : impossible de déterminer la connectivité Internet.

Vous pouvez vérifier le type de profil de connexion utilisé activement par l’appareil avec ce qui suit :

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 :

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;
    }
}

Limites

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. En raison du fonctionnement de la connectivité sur chaque plateforme, seul le fait qu’une connexion est disponible peut être garanti. Par exemple, l’appareil peut être connecté à un réseau Wi-Fi, mais le routeur est déconnecté d’Internet. Dans cet exemple, Internet peut être signalé, mais une connexion active n’est pas disponible.

API

Retrouvez d’autres vidéos Xamarin sur Channel 9 et YouTube.