Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Xamarin.Essentials:Łączność

Klasa Connectivity umożliwia monitorowanie zmian w warunkach sieciowych urządzenia, sprawdzanie bieżącego dostępu do sieci i sposób, w jaki jest on obecnie połączony.

Rozpocznij

Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.

Aby uzyskać dostęp do funkcji łączności , wymagana jest następująca konfiguracja specyficzna dla platformy.

Uprawnienie AccessNetworkState jest wymagane i musi być skonfigurowane w projekcie systemu Android. Można to dodać w następujący sposób:

Otwórz plik AssemblyInfo.cs w folderze Właściwości i dodaj:

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

LUB Zaktualizuj manifest systemu Android:

Otwórz plik AndroidManifest.xml w folderze Właściwości i dodaj następujący element w węźle manifestu.

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

Możesz też kliknąć prawym przyciskiem myszy projekt systemu Android i otworzyć właściwości projektu. W obszarze Manifest systemu Android znajdź obszar Wymagane uprawnienia: i sprawdź uprawnienie Stan sieci dostępu. Spowoduje to automatyczne zaktualizowanie pliku AndroidManifest.xml .

Korzystanie z łączności

Dodaj odwołanie do Xamarin.Essentials klasy:

C#
using Xamarin.Essentials;

Sprawdź bieżący dostęp do sieci:

C#
var current = Connectivity.NetworkAccess;

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

Dostęp sieciowy należy do następujących kategorii:

  • Internet — dostęp lokalny i internetowy.
  • ConstrainedInternet — ograniczony dostęp do Internetu. Wskazuje łączność portalu z niewoli, w którym jest udostępniany dostęp lokalny do portalu internetowego, ale dostęp do Internetu wymaga podania określonych poświadczeń za pośrednictwem portalu.
  • Lokalny — tylko dostęp do sieci lokalnej.
  • Brak — łączność nie jest dostępna.
  • Nieznany — nie można określić łączności z Internetem.

Możesz sprawdzić, jakiego typu profil połączenia urządzenie aktywnie używa:

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

Za każdym razem, gdy profil połączenia lub zmiany dostępu do sieci można odebrać zdarzenie po wyzwoleniu:

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

Ograniczenia

Należy pamiętać, że istnieje możliwość zgłoszenia przez NetworkAccess usługę , Internet ale pełny dostęp do sieci Web jest niedostępny. Ze względu na sposób działania łączności na każdej platformie może zagwarantować, że połączenie jest dostępne. Na przykład urządzenie może być połączone z siecią Wi-Fi, ale router jest odłączony od Internetu. W tym przypadku internet może być zgłaszany, ale aktywne połączenie nie jest dostępne.

interfejs API

Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.