Xamarin.Essentials: Bağlantı

Bağlantı sınıfı, cihazın ağ koşullardaki değişiklikleri izlemenize, geçerli ağ erişimini ve şu anda bağlı olduğunu denetlemenizi sağlar.

başlarken

Bu API 'yi kullanmaya başlamak için, kitaplığın projelerinizde düzgün bir şekilde yüklendiğinden ve ayarlandığından emin olmak için Başlarken Kılavuzunu okuyun.

Bağlantı işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.

AccessNetworkStateİzin gereklidir ve Android projesinde yapılandırılması gerekir. Bu, aşağıdaki yollarla eklenebilir:

Özellikler klasörünün altında AssemblyInfo. cs dosyasını açın ve aşağıdakileri ekleyin:

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

VEYA Android bildirimini güncelleştir:

Özellikler klasörünün altında AndroidManifest.xml dosyasını açın ve bildirim düğümünün içine aşağıdakini ekleyin.

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

Ya da Android projesine sağ tıklayıp projenin özelliklerini açın. Android bildirimi altında gerekli izinleri bulun: alanı ve erişim ağ durumu iznini denetleyin. Bu, AndroidManifest.xml dosyasını otomatik olarak güncelleştirir.

Bağlantı kullanma

Sınıfınıza bir başvuru ekleyin Xamarin.Essentials :

using Xamarin.Essentials;

Geçerli ağ erişimini denetle:

var current = Connectivity.NetworkAccess;

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

Ağ erişimi aşağıdaki kategorilere ayrılır:

  • İnternet – yerel ve Internet erişimi.
  • ConstrainedInternet – sınırlı internet erişimi. Bir Web portalına yerel erişimin sağlandığı, ancak Internet erişimi için belirli kimlik bilgilerinin bir portal aracılığıyla sağlanması gerektiğini belirten açıklamalı Portal bağlantısını gösterir.
  • Yerel – yalnızca yerel ağ erişimi.
  • Hiçbiri – kullanılabilir bağlantı yok.
  • Bilinmiyor – internet bağlantısı belirlenemiyor.

Cihazın etkin olarak kullandığı bağlantı profili türünü kontrol edebilirsiniz:

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

Bağlantı profili veya ağ erişimi her değiştiğinde, tetiklendiğinde bir olay alabilirsiniz:

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

Sınırlamalar

InternetTarafından raporlanan, NetworkAccess ancak Web 'e tam erişim kullanılamadığını aklınızda olması önemlidir. Her platformda bağlantının çalışma biçimi nedeniyle, yalnızca bir bağlantının kullanılabilir olduğunu garanti edebilir. Örneğin, cihaz bir Wi-Fi ağa bağlı olabilir, ancak yönlendiricinin internet bağlantısı kesilir. Bu örnekte Internet bildirilebilir, ancak etkin bir bağlantı kullanılamıyor olabilir.

API

Channel 9 ve YouTube'da daha fazla Xamarin videoları bulun.