1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Auf WLAN disconnect reagieren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Iggy Stanson, 11.10.2010.

  1. Iggy Stanson, 11.10.2010 #1
    Iggy Stanson

    Iggy Stanson Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    11.10.2010
    Hallo zusammen,

    ich möchte in meinem App (Android 2.2) über WLAN Änderungen informiert werden und entsprechend reagieren. Genauer gesagt möchte ich Disconnects abfragen, also kein WLAN ein oder aus.

    Ich habe schon diverse Möglichkeiten probiert (z.B. Listener mit WifiManager.WIFI_STATE_CHANGE und wie die Werte alle heißen), nichts hat aber bisher funktioniert. Nach dem ersten ausführen wird der Listener aktiv, danach kann ich aber am Router das WLAN beliebig ein und ausschalten, ohne dass der Listener durch den disconnect aktiv wird.

    Für Ideen und Tipps wäre ich dankbar.

    So far, Iggy
     
  2. Unicate, 11.10.2010 #2
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    BroadcastReceiver, WifiManager.WIFI_STATE_CHANGE sind die richtigen Stichwörter.
    Broadcastreceiver erstellen (onReceive Methode überschreiben)
    registrieren

    PHP:
    private BroadcastReceiver _broadcastReceiver = new BroadcastReceiver() {        
            @
    Override
            
    public void onReceive(Context arg0Intent intent) {
                final 
    String action intent.getAction();
                
    Log.d(TAG"Broadcastreceive: " action);
                    if(
    action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
                        
    NetworkInfo netinfo = (NetworkInfo)intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
                        
    Log.d(TAGnetinfo.getState().toString());
                        if (
    netinfo.getState().equals(NetworkInfo.State.CONNECTED)) {

                         } else if(
    netinfo.getState().equals(NetworkInfo.State.CONNECTING)) {

                        } else if(
    netinfo.getState().equals(NetworkInfo.State.DISCONNECTED)) {

                        } else if(
    netinfo.getState().equals(NetworkInfo.State.DISCONNECTING)) {

                        } 
                    }
            }
        }
    PHP:
    IntentFilter filter = new IntentFilter();
    filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
     
    context.registerReceiver(_broadcastReceiverfilter);
    Das sollte funktionieren!
     
    Zuletzt bearbeitet: 11.10.2010
  3. Iggy Stanson, 11.10.2010 #3
    Iggy Stanson

    Iggy Stanson Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    11.10.2010
    Ui, danke dir Unicate für die super schnelle Antwort!

    Mein Coding ist an sich recht ähnlich, nur dass ich über einen Listener gegangen bin, dessen Name mir gerade nicht mehr einfallen will.
    Aber ich werde es heute gleich ausprobieren.
     
  4. Unicate, 11.10.2010 #4
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Ach so, ich hatte vergessen zu erwähnen, dass du den Broadcast natürlich mit unregister wieder entfernen musst, wenn du ihn nicht mehr benötigst
     

Diese Seite empfehlen