Xamarin.Essentials:Připojení
Třída připojení 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í 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í
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.