Artykuł

freeimages.com freeimages.com
wrz 24 2015
0

Universal Apps - weryfikacja stanu połączenia internetowego

Większość mobilnych aplikacji wymaga aktywnego połączenia internetowego do poprawnego działania. Wiele z nich, nie posiada nawet trybu offline i bez sieci po prostu nie jest w stanie funkcjonować. Często developer musi również reagować na rodzaj połączenia sieciowego, z którego aktualnie korzysta użytkownik (WiFi/GSM), dlatego temat ten jest naprawdę ważny z perspektywy całego projektu aplikacji.

Na szczęście wszystkie opisane wyżej zagadnienia można łatwo oprogramować w aplikacjach uniwersalnych - wystarczy tylko skorzystać z klasy NetworkInformation, której przykładowe użycie zaprezentuję w dzisiejszym tekście:-)

Klasa NetworkInformation

NetworkInformation to podstawowa klasa, która pozwala nam na zweryfikowanie danych na temat aktualnego połączenia internetowego. Aby uzyskać szczegółowe informacje na temat aktualnego profilu, musimy skorzystać z poniższej konstrukcji:

var profile = NetworkInformation.GetInternetConnectionProfile();
if (profile != null)
{
    // active connection
}
else
{
    // no connection
}

Jeśli w wyniku próby pobrania obiektu, zostanie zwrócony null, to oznacza to, że w chwili obecnej urządzenie nie ma aktywnego połączenia internetowego.

W przypadku gdy jesteśmy podłączeni do sieci, możemy sprawdzić z jakim rodzajem połączenia mamy do czynienia. Poniżej prosta instrukcja:

var interfaceType = profile.NetworkAdapter.IanaInterfaceType;
// 71 - WiFi & 6 - Ethernet(LAN)
if (interfaceType == 71 || interfaceType == 6) 
{
    //
}
// 243 & 244 - 3G/Mobile
else if (interfaceType == 243 || interfaceType == 244)
{
    //
}

Pełna lista wszystkich możliwych interfejsów znajduje się tutaj.

Znając wszystkie zależności, możemy łatwo aktywować odpowiednie zachowanie w aplikacji, wyświetlić dialog, a nawet zamknąć cały program:-)

Klasa NetworkInformation posiada znacznie więcej możliwości - szczegóły na stronie MSDN.

Data ostatniej modyfikacji: 20.11.2015, 21:44.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus