Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, cihazın ağ erişilebilirliğini incelemek için .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) IConnectivity arabirimini nasıl kullanabileceğiniz açıklanmaktadır. Ağ bağlantısının İnternet'e erişimi olabilir. Cihazlar bluetooth, hücresel veya WiFi gibi farklı türlerde ağ bağlantıları da içerir. Arabirim, IConnectivity
cihazların bağlantı durumundaki değişiklikleri izlemek için bir olaya sahiptir.
Arabirimin IConnectivity
varsayılan uygulaması özelliği aracılığıyla Connectivity.Current kullanılabilir.
IConnectivity
Hem arabirim hem Connectivity
de sınıf ad alanında Microsoft.Maui.Networking
yer alır.
Kullanmaya başlayın
İşlevlere Connectivity 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:
Derleme tabanlı izni ekleyin:
Platforms/Android/MainApplication.cs dosyasını açın ve yönergelerin ardından
using
aşağıdaki derleme özniteliklerini ekleyin:[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]
- veya -
Android Bildirimini güncelleştirin:
Platformlar/Android/AndroidManifest.xml dosyasını açın ve düğüme
manifest
aşağıdakileri ekleyin:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- veya -
Bildirim düzenleyicisinde Android Bildirimi'ni güncelleştirin:
Visual Studio'da Platformlar/Android/AndroidManifest.xml dosyasına çift tıklayarak Android bildirim düzenleyicisini açın. Ardından, Gerekli izinler'in altında ACCESS_NETWORK_STATE iznini denetleyin. Bu, AndroidManifest.xml dosyasını otomatik olarak güncelleştirir.
Connectivity kullanma
Özelliğini denetleyerek NetworkAccess geçerli ağın kapsamını belirleyebilirsiniz.
NetworkAccess accessType = Connectivity.Current.NetworkAccess;
if (accessType == NetworkAccess.Internet)
{
// Connection to internet is available
}
Ağ erişimi aşağıdaki kategorilere ayrılır:
- Internet — Yerel ve İnternet erişimi.
- ConstrainedInternet — Sınırlı internet erişimi. Bu değer, bir web portalına yerel erişimin sağlandığı bir tutsak portal olduğu anlamına gelir. Kimlik doğrulaması kimlik bilgilerini sağlamak için portal kullanıldıktan sonra İnternet erişimi verilir.
- Local — Yalnızca yerel ağ erişimi.
- None — Bağlantı yok.
- Unknown — İnternet bağlantısı belirlenemiyor.
Cihazın etkin olarak kullandığı bağlantı profilinin türünü de kontrol edebilirsiniz:
IEnumerable<ConnectionProfile> profiles = Connectivity.Current.ConnectionProfiles;
if (profiles.Contains(ConnectionProfile.WiFi))
{
// Active Wi-Fi connection.
}
Bağlantı profili veya ağ erişimi her değiştiğinde ConnectivityChanged , olay tetikler:
public class ConnectivityTest
{
public ConnectivityTest() =>
Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
~ConnectivityTest() =>
Connectivity.ConnectivityChanged -= Connectivity_ConnectivityChanged;
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
if (e.NetworkAccess == NetworkAccess.ConstrainedInternet)
Console.WriteLine("Internet access is available but is limited.");
else if (e.NetworkAccess != NetworkAccess.Internet)
Console.WriteLine("Internet access has been lost.");
// Log each active connection
Console.Write("Connections active: ");
foreach (var item in e.ConnectionProfiles)
{
switch (item)
{
case ConnectionProfile.Bluetooth:
Console.Write("Bluetooth");
break;
case ConnectionProfile.Cellular:
Console.Write("Cell");
break;
case ConnectionProfile.Ethernet:
Console.Write("Ethernet");
break;
case ConnectionProfile.WiFi:
Console.Write("WiFi");
break;
default:
break;
}
}
Console.WriteLine();
}
}
Sınırlamalar
Tarafından bildirildiğinin Internet ancak web'e tam erişimin NetworkAccess kullanılamadığını bilmeniz önemlidir. Her platformda bağlantının nasıl çalıştığı 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 Internet
raporlanabilir, ancak etkin bir bağlantı kullanılamaz.