2010-08-22

Netzwerk-Status abfragen

Android bietet eine ganze Reihe von Auskunftsfunktionen. Heute zeige ich Ihnen, wie Sie den Netzwerk-Status ermitteln. Wie üblich, zunächst das – diesmal extrem kurze – Progrämmchen:

package com.thomaskuenneth;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.TextView;

public class TestActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ConnectivityManager connMgr =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo mobile = connMgr
        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    String roaming =
"roaming ist " + (mobile.isRoaming() ? "ein" : "aus");

    ((TextView) findViewById(R.id.view)).setText(roaming);
  }
}

Das Ermitteln einer ConnectivityManager-Instanz verläuft nach dem Ihnen bereits gut bekannten Muster. Mit getSystemService wird ein bestimmter Service abgefragt und das Ergebnis auf den gewünschten Typ gecastet. Die Methode getNetworkInfo liefert Informationen zu Netzwerktypen. Im konkreten Fall (ConnectivityManager.TYPE_MOBILE) möchte ich wissen, ob im aktuell verwendeten Netz geroamt wird. Hierfür gibt es eine eigene Methode, isRoaming. Damit das Ganze auch funktioniert, muss die App das Recht android.permission.ACCESS_NETWORK_STATE anfordern.

No comments:

Post a Comment