Xamarin.Essentials: Připojení

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

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si příručku Začínáme pro a ujistěte se, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

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

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

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

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

NEBO aktualizujte 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 pro Android a otevřete jeho vlastnosti. V části Manifest pro Android vyhledejte oblast Požadovaná oprávnění: a zaškrtněte oprávnění Stav přístupové sítě. Tím se automaticky aktualizuje AndroidManifest.xml souboru.

Použití připojení

Do třídy Xamarin.Essentials přidejte odkaz na :

using Xamarin.Essentials;

Zkontrolujte aktuální přístup k síti:

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í ke konkrétnímu portálu, kde je poskytn místní přístup k webovému portálu, ale přístup k internetu vyžaduje, aby se prostřednictvím portálu poskytovaly konkrétní přihlašovací údaje.
  • Místní – jenom přístup k místní síti.
  • Žádné – Není k dispozici žádné připojení.
  • Neznámé – Nepodařilo se 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.
}

Kdykoli se profil připojení nebo přístup k síti změní, můžete při aktivaci přijmout 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 je hlášený službou , ale úplný přístup k webu InternetNetworkAccess není k dispozici. Vzhledem k tomu, jak připojení funguje na jednotlivých platformách, může jenom zaručit, že bude připojení k dispozici. Zařízení může být například připojené k Wi-Fi síti, ale směrovač je odpojený od internetu. V tomto případě se může hlásit internet, ale aktivní připojení není k dispozici.

rozhraní API

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