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" />