[DEV][Win8] Netzwerkerkennung

Hier der nächste Beitrag meiner Blogserie: Blogserie- Mein Leben mit XAML.

Wenn in einer App auf Netzwerkresourcen, insb. Internet Resourcen zugegriffen werden soll, ist es ratsam schon vor dem ersten Versuch zu überprüfen, ob derzeit überhaupt Internetzugriff möglich wäre.

Dies ist mit den vorhandenen APIs leicht möglich:

In dem Namespace “Windows.Networking.Connectivity” gibt es eine Klasse “NetworkInformation” welche die benötigten Informationen liefern kann.

Hierzu ist zuerst zu überprüfen, ob

 NetworkInformation.GetInternetConnectionProfile() != null 

ist. Wenn dies gegeben ist – im Übrigen unbedingt überprüfen, da z.B. bei Flugmodus oder anderweitig abgeschalteten Netzwerkadaptern dies null ist – dann liefert das resultierende Objekt eine Methode

 GetNetworkConnectivityLevel()

welche einen Enum

 NetworkConnectivityLevel

zurückliefert. Dieses kann folgende Werte annehmen:

  • ConstrainedInternetAccess
  • InternetAccess
  • LocalAccess
  • None

Für den eigentlichen Internetzugriff ist hier nur InternetAccess von Interesse.

Wenn also das Ergebnis nicht InternetAccess ist, dann sollte der Nutzer auch darüber in Kenntnis gesetzt werden, dass Internet benötigt wird.

Dies wird typischer Weise über ein “Popup” gelöst. Wobei ein Popup in Windows 8 Store Apps eine Art eingeblendetes Band ist. Hierzu gibt es Popups, welche gut über Blend eingerichtet werden können und entsprechend mit TextBlöcken und Buttons angereichert werden können.

 

Bis zum nächsten Post

 

Stephanus