1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. spike78, 27.06.2012 #1
    spike78

    spike78 Threadstarter Junior Mitglied

    Hi zusammen,

    ich würde gerne eine kleine App schreiben, die mir meine Netzwerkverbindungen protokolliert. D.h. Sobald ein Wechsel z.B. von UMTS nach HSDPA oder nach EDGE usw. geschieht, soll dies protokolliert werden.

    Dazu habe ich im Netz schon das ein oder andere Beispiel oder Tutorial gefunden und ausprobiert.
    Meine Methode sieht bisher so aus.

    Das Problem ist nur das der BroadcastReceiver nur beim Start meiner App angesprochen wird, sobald ein Netzwechsel passiert, bleibt er ruhig.

    Hier mal mein bisheriger Code:

    Code:
      @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mContext = this;
            mNetworkStateChangedFilter = new IntentFilter();
            mNetworkStateChangedFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            
            mNetworkStateIntentReceiver = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
                    NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
                    mTypeName = info.getTypeName();
                    mSubtypeName = info.getSubtypeName();
                    mAvailable = info.isAvailable();                
                    Log.i(LOGTAG, "Network Type: " + mTypeName 
                        + ", subtype: " + mSubtypeName
                        + ", available: " + mAvailable);
                    updateScreen();
                }
                }
            };
            setContentView(R.layout.main);
          
            
        }
      @Override
        protected void onResume() {
            Log.d(LOGTAG, "onResume");
            super.onResume();
            if(mNetworkStateIntentReceiver!=null){
                registerReceiver(mNetworkStateIntentReceiver, mNetworkStateChangedFilter);
                unregisterReceiver(mNetworkStateIntentReceiver);
                registerReceiver(mNetworkStateIntentReceiver, mNetworkStateChangedFilter);
            }
        }
    
    

    Was muss ich tun, das mein BroadcastReceiver bei jedem Wechsel aktiv wird ?

    Danke für eure Hilfe und Grüße

    Spike
     
  2. Unicate, 27.06.2012 #2
    Unicate

    Unicate Android-Experte

    Soll der Wechsel registriert werden auch wenn du die Activity geschlossen hast/bzw. das Gerät den Bildschirm aus hat?

    Dann schau dir mal Services an ;)
     
  3. Butch78, 27.06.2012 #3
    Butch78

    Butch78 Junior Mitglied

    Hi,

    erstmal würde es mir genügen, das der Wechsel registriert wird wenn meine App aktiv ist. Also ohne Service, den wollte ich dann im Anschluß machen. Aber derzeit wird ein Netzwechsel nur beim Starten meiner App registriert...

    Gruß

    Spike
     
Du betrachtest das Thema "Netzverbindung überwachen" im Forum "Android App Entwicklung",