Kontrolujemy zmianę sieci – Xamarin.Forms Connectivity Plugin

Kolejnym krokiem w implementacji będzie kontrola zmiany sieci, którą rozbijemy na dwie części:

  • wykrycie momentu zmiany sieci
  • reakcja na zmianę na określoną sieć

Długo zastanawiałam się, czy konieczna będzie implementacja specyficzna dla platformy dla tego co chcemy zrobić, postanowiłam jednak dać szansę pluginowi przeznaczonemu dla projektu Xamarin.Forms.

Przy pobieraniu tej paczki ważne jest aby pobrać ją na poziomie całej solucji, a następnie zaznaczyć wszystkie projekty dotyczące kodu dzielonego oraz tego dla specyficznych platform.

Po stronie manifestu w projekcie Androidowym należałoby dodać dwa pozwolenia: ACCESS_NETWORK_STATE oraz ACCESS_WIFI_STATE. Pobrany plugin dodał je za nas, jednak należałoby o nich pamiętać w przypadku skorzystania z innej implementacji.

Po kilku przebudowaniach i dociągnięciu wszystkich zależności, appka jest gotowa do testów.

Na początek prosty test - sprawdzamy, czy aplikacja wykryje że jesteśmy połączeni obecnie z siecią WiFi

if(CrossConnectivity.Current.IsConnected)
{
 await DisplayAlert("Success!", "You are connected to WiFi", "Ok");
}

Następnie dodajemy Event Handler do sprawdzenia zmiany w połączeniu, czyli na przykład kiedy stracimy połączenie z siecią, zostaniemy o tym poinformowani. Dodajemy Event w konstruktorze naszego głównego okna

CrossConnectivity.Current.ConnectivityChanged += (sender, args) =>
{
 Current_ConnectivityChanged(sender, args);
};

oraz implementujemy, co ma się stać na wypadek zmiany sieci

private async void Current_ConnectivityChanged(object sender, ConnectivityChangedEventArgs args)
{
 await DisplayAlert("Connectivity Changed", "IsConnected: " + args.IsConnected.ToString(), "OK");
}

następnym krokiem będzie sprawdzenie dokładnych informacji o sieci z którą jesteśmy aktualnie połączeni oraz prostego komunikatu na temat, czy jest to sieć w obrębie której mogą zajść zmiany w naszej aplikacji, czyli kiedy wejdziemy do warsztatu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *