2017-12-19 4 views
1

Ich möchte eine Benachrichtigung über die Änderung des Status der WiFi-Verbindung in meiner Android-Anwendung erhalten. Ich habe mehrere Vorschläge (hier zu SO) gefunden, die meistens zur Definition einer Absicht führen. Ich verwende diesen Ansatz:android.net.wifi.STATE_CHANGE Absicht Behandlung (in Aktivität)

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

    IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 
    registerReceiver(broadcastReceiver, intentFilter); 

    checkWiFi(); 
} 

public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent != null) 
      checkWiFi(); 
    } 
}; 

Das funktioniert aber ich frage mich, wenn ich also ein Manifest zentrierten Ansatz verwenden kann, wenn ich dieses in meinem AndroidManifest.xml:

<activity 
     android:name=".MainActivity" 
     android:screenOrientation="landscape"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.net.wifi.STATE_CHANGE" /> 
     </intent-filter> 
    </activity> 

ich benachrichtigt werden soll, der eingehenden Absicht. Recht? Wie kann ich das in meiner Aktivität handhaben?

Mit freundlichen Grüßen, Mike

Antwort

0

Sie Klasse MyBroadcastReceiver extends BroadcastReceiver

und nächste Manifest

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.net.wifi.STATE_CHANGE" /> 
    </intent-filter> 
</receiver> 
+0

Mit anderen Worten schaffen sollte ich die Absicht der 'Activity' selbst nicht verarbeiten kann. Ich habe den Ansatz, den Sie vorschlagen, ausprobiert, aber ich verstehe nicht, wie ich das Ereignis vom Empfänger an die 'Aktivität' melden soll (abgesehen von der Verwendung eines' LocalBroadcastManager' und 'Intents', aber das klingt ein wenig überflüssig). – weirdgyn

Verwandte Themen