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
İlgili Video
Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.