Xamarin.Essentials:Bağlantı

Bağlantı sınıfı, cihazın ağ koşullarındaki değişiklikleri izlemenize, geçerli ağ erişimini ve şu anda nasıl bağlı olduğunu denetlemenize olanak tanır.

Kullanmaya başlayın

Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.

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

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

Özellikler klasörünün altındaki 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ındaki AndroidManifest.xml dosyasını açın ve bildirim düğümünün içine aşağıdakileri ekleyin.

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

Veya Android projesine sağ tıklayıp projenin özelliklerini açın. Android Bildirimi altında Gerekli izinler: alanını bulun ve Erişim Ağ Durumu iznini denetleyin. Bu, AndroidManifest.xml dosyasını otomatik olarak güncelleştirir.

Bağlantıyı Kullanma

Sınıfınızda için Xamarin.Essentials bir başvuru ekleyin:

using Xamarin.Essentials;

Geçerli ağ erişimini denetleyin:

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 İnternet'e erişimin belirli kimlik bilgilerinin bir portal üzerinden sağlanmasını gerektirdiği, tutsak portal bağlantısını gösterir.
  • Yerel – Yalnızca yerel ağ erişimi.
  • Yok – Kullanılabilir bağlantı yok.
  • Bilinmiyor – İnternet bağlantısı belirlenemiyor.

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

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

Bağlantı profili veya ağ erişimi 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

Tarafından NetworkAccess raporlanmanın Internet mümkün olduğunu ancak web'e tam erişimin kullanılamadığını unutmayın. Her platformda bağlantının çalışma şekli nedeniyle yalnızca bir bağlantının kullanılabilir olduğunu garanti edebilir. Örneğin cihaz bir Wi-Fi ağına bağlı olabilir, ancak yönlendiricinin İnternet bağlantısı kesilir. Bu örnekte İnternet bildirilebilir, ancak etkin bir bağlantı kullanılamaz.

API

Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.