Verbindungsstatus

Mobile Anwendungen unterliegen sich ständig ändernden Bedingungen. Dazu kann auch ein Schwanken der Verbindungsqualität oder sogar das ausfallen der Netzwerkverbindung gehören. Aus diesem Grund bietet die Android API die Möglichkeit, sich über den aktuellen Verbindungsstatus zu informieren.

Für die Prüfung des Verbindgungsstatus stellt Android einen Systemdienst, den Connectivity-Service, bereit. Innerhalb einer Activity kann man mittels folgender Codezeile eine Instanz der Klasse ConnectivityManager erhalten.

ConnectivityManager connectivityManager 
	= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

Die Klasse ConnectivityManager besitzt die Method getNetworkInfo() . Da mobile Endgeräte oft mehrere Möglichkeiten besitzen, um eine Netzwerkverbindung herzustellen, muss als Parameter der Typ der Netzwerkverbindung angegeben werden. Dabei kann es sich zum Beispiel um eine Mobilfunkverbindung oder WLAN handeln.

NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

Wie man sieht, erhält man ein Objekt vom Typ NetworkInfo . Die wichtigste Methode dieser Klasse ist isAvailable() .

ConnectivityManager connectivityManager =
	(ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
	
NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if (!wifi.isAvailable() && !mobile.isAvailable()) {
	System.out.println("Verbindung besteht");
} else {
	System.out.println("Es besteht keine Verbindung");
}

Um den Netzwerkstatus abzufragen, müssen im Android-Manifest noch entsprechende Richtlinien ergänzt werden:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />