mein wifi sacn results Broascast wird nicht aufgerufen?

  • 1 Antworten
  • Letztes Antwortdatum
T

the_time

Ambitioniertes Mitglied
0
Hallo,
ich versuche gerade zwei broadcast(internet connection and wifi scan results) zu registrieren. Die eine von internet connection funkrioniert und ich kriege was angezeigt aber die von wifi scan result wird erst nicht mal erreicht. Ich habe den Code dafür ohne BroadcastReceiver getestet und funktioniert einwandfrei.



PHP:
import com.bustracker.MainActivity.BroadcastReceiverListener;

public class MainActivity extends ActionBarActivity {
    BroadcastReceiverListener receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        receiver = new BroadcastReceiverListener();

    }

    private class BroadcastReceiverListener extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(
                    android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
                      // da kommt er nicht rein. Aber der code hier an sich funktionit ohne BroadcastReceiver
            }

            else if (intent.getAction().equals(
                    android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
                      //Hier krige ich broadcast.

            }
        }
    };

    protected void onResume() {

        IntentFilter wifi = new IntentFilter();
        wifi.addAction(android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
        registerReceiver(receiver, wifi);

        IntentFilter conn = new IntentFilter();
        conn.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(receiver, conn);

        super.onResume();
    }

    @Override
    protected void onDestroy() {
        unregisterReceiver(receiver);
        super.onDestroy();
    }

}
 
Ich bin mir nicht ganz sicher aber ich glaube der zweite registerReceiver Aufruf "überschreibt" den ersten. D.h. der Receiver hört nur auf den letzten IntentFilter.

Vorschläge:
- den Receiver 2 mal instantiieren
- einen IntentFilter mit 2 Actions verwenden und nur ein Aufruf von registerReceiver
 
Zurück
Oben Unten