Obecnie tworzone aplikacje mobilne praktycznie nie potrafią działać bez połączenia z Internetem. Przykładów wykorzystania transmisji danych w aplikacjach można wymieniać nieskończoną ilość. Ogranicza nas jedynie nasza wyobraźnia.
Implementując tego rodzaju rozwiązania w aplikacjach bardzo często zapomina się o drobnej rzeczy, którą można zrobić przez wykonaniem zapytania sieciowego. Tą drobną rzeczą jest sprawdzenie, czy telefon posiada dostęp do sieci. Sam dostęp do sieci nie gwarantuje nam, że uzyskamy połączenie z Internetem. Informacja ta może jednak zostać wykorzystana poprawnej obsługi braku sieci.
Bardzo często, jeśli nie jest sprawdzana dostępność sieci, obsługa tej sytuacji robiona jest przez wyjątek. Nie jest to do końca poprawne, zważywszy na niewielki koszt dodania sprawdzenia istnienia sieci. Aby to zrobić wystarczy wywołać jedną metodę:
using System.Net.NetworkInformation; bool isAvailable = NetworkInterface.GetIsNetworkAvailable(); MessageBox.Show(isAvailable.ToString());
Statyczna metoda NetworkInterface.GetIsNetworkAvailable() pozwala na uzyskanie informacji, czy nasz telefon ma dostęp do jakiejkolwiek sieci. Wykorzystując tą metodę należy pamiętać o jednym drobiazgu, zresztą podobnie jak również w sytuacji wykorzystywania połączenia sieciowego – telefon potrzebuje trochę czasu, aby zalogować się do sieci. Informacja ta ma szczególne znaczenie, jeśli dysponujemy tylko połączeniem WiFi. W sytuacji, gdy uruchomimy aplikację zaraz po wyjściu telefonu z trybu uśpienia, otrzymamy komunikat, że nie ma dostępnej sieci. Co może okazać się nieprawdą ponieważ telefonowi nie udało się jeszcze zalogować do dostępnych sieci WiFi.
Oprócz informacji o tym, czy sieć jest dostępna mamy również dostęp do typu sieci z jaką połączony jest nasz telefon. Informacja ta może być bardzo pomocna, jeśli chcemy zbudować bardzo responsywny interfejs użytkownika w aplikacjach wykorzystujących intensywnie połączenie z siecią. W przypadku wykrycia połączenia z wolniejszym typem sieci można wyłączyć niektóre funkcje programu – przykładowo odtwarzać wideo w niskiej rozdzielczości w przypadku wolnego połączenia, a w przypadku szybkiego – w wysokiej rozdzielczości.
W celu sprawdzenie z jakim połączeniem mamy do czynienia wystarczy skorzystać z własności:
Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType
Własność ta zwraca następujące wartości:
- Wireless80211 – połączenie przez WiFi,
- Ethernet – połączenie przez kabel USB podłączony do komputera,
- MobileBroadbandGSM,
- MobileBroadbandCDMA,
- None – brak sieci.
otoczka Windows Phone zabija ideę darmowych aplikacji. Kto będzie chcial tworzyc freeware jesli zeby go udostepniac trzeba placic $99 dolarow rocznie…
To jest chory system, nastawiony na mega zysk gdy smartfony sie spopularyzuja a jak widac po Windows 8 i Metro to Microsoft uwaza ze to nastapi za chwile.
To 99$ nie jest dużo jeśli weźmie się pod uwagę to co się dostaje. Microsoft daje dostęp do pomocy technicznej, miejsce do wrzucania aplikacji oraz testerów.
Twórca oprócz 99$ nie musi inwestować nic, aby pojawić się na platformie.
Dodatkowo aplikacja darmowa może przynosić zysk -- reklamy, sprzedaż usług, … -- wszystko zależy od modelu biznesowego. Możliwości jest wiele.
I to co może najważniejsze dużo zależy też od kraju na którym aplikacja żyje. Dla Polaka wydatek 5 zł za aplikację jest uznawany za duży. Dla osoby z USA 5$ jest niewielkim wydatkiem. Zakładając, że sprzedajemy jakąś aplikację po najniższej cenie 1$ i marżę Microsoftu -- 30%, wystarczy sprzedać 142 aplikacje, aby koszt założenia konta się zwrócił. To jest naprawdę nie dużo.