Xamarin.Essentials: Připojení ivity

Třída Připojení ivity umožňuje monitorovat změny v podmínkách sítě zařízení, kontrolovat aktuální přístup k síti a způsob, jakým je aktuálně připojen.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Pro přístup k funkcím Připojení ivity se vyžaduje následující nastavení specifické pro platformu.

Oprávnění AccessNetworkState je povinné a musí být nakonfigurováno v projektu Android. Můžete ho přidat následujícími způsoby:

Otevřete soubor AssemblyInfo.cs ve složce Vlastnosti a přidejte:

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

NEBO Aktualizovat manifest Androidu:

Otevřete soubor AndroidManifest.xml ve složce Vlastnosti a do uzlu manifestu přidejte následující kód.

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

Nebo klikněte pravým tlačítkem na projekt Androidu a otevřete vlastnosti projektu. V části Manifest pro Android vyhledejte požadovaná oprávnění: a zkontrolujte oprávnění Přístup ke stavu sítě. Tím se automaticky aktualizuje soubor AndroidManifest.xml .

Použití Připojení ivity

Přidejte do Xamarin.Essentials předmětu odkaz:

using Xamarin.Essentials;

Zkontrolujte aktuální síťový přístup:

var current = Connectivity.NetworkAccess;

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

Přístup k síti spadá do následujících kategorií:

  • Internet – místní a internetový přístup.
  • ConstrainedInternet – Omezený přístup k internetu. Označuje připojení k portálu s oprávněním pro správu, kde je k dispozici místní přístup k webovému portálu, ale přístup k internetu vyžaduje, aby byly prostřednictvím portálu zadané konkrétní přihlašovací údaje.
  • Místní – pouze přístup k místní síti.
  • Žádné – není k dispozici žádné připojení.
  • Neznámé – Nejde určit připojení k internetu.

Můžete zkontrolovat, jaký typ profilu připojení zařízení aktivně používá:

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

Při každé změně profilu připojení nebo síťového přístupu můžete při aktivaci obdržet událost:

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

Omezení

Je důležité si uvědomit, že je možné, že Internet je nahlášený NetworkAccess , ale úplný přístup k webu není k dispozici. Vzhledem k tomu, jak funguje připojení na jednotlivých platformách, může zaručit, že je připojení k dispozici. Například zařízení může být připojené k síti Wi-Fi, ale směrovač je odpojený od internetu. V tomto případě může být hlášeno připojení k internetu, ale aktivní připojení není k dispozici.

rozhraní API

Další videa o Xamarinu najdete na Channel 9 a YouTube.