23. Juni 2013

Android: WLAN-Konnektivität prüfen

Innerhalb einer Android-App kann es sinnvoll sein, zu überprüfen, ob das Gerät im Moment über eine aktive WLAN-Verbindung verfügt. Dies ist beispielsweise sinnvoll wenn Netzwerkzugriffe mit erhöhtem Datendurchsatz nicht über die mobile Datenverbindung ausgeführt werden sollen. Im Folgenden soll daher gezeigt werden, wie aus einer Activity heraus überprüft werden kann, ob eine WLAN-Verbindung verfügbar ist.

Den notwendigen Zugriff auf den WLAN-Adapter erlangt man über die Verwendung des sogenannten ConnectivityManager. Eine Referenz auf diesen erhält man durch den Aufruf der getSystemService-Methode der Klasse Context, indem man als Parameter die Konstante Context.CONNECTIVITY_SERVICE übergibt und den Rückgabewert entsprechend castet. Über einen anschließenden Aufruf der getNetworkInfo-Methode des eben referenzierten Services, wobei hierbei der Parameter ConnectivityManager.TYPE_WIFI übergeben werden muss, erhält man dann ein Objekt der Klasse NetworkInfo, über das Informationen über den WLAN-Adapter bezogen werden können. Dessen Konnektivität kann über die isConnected-Methode abgefragt werden.
 ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  
 NetworkInfo wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
 boolean wlanConnectionAvailable = wifiNetworkInfo.isConnected();  
Um den Zugriff auf den WLAN-Adapter zu erhalten muss außerdem, wie folgendermaßen dargestellt, eine entsprechende Permission in der AndroidManifest.xml definiert werden.
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  

Keine Kommentare:

Kommentar veröffentlichen