swirl logo

About     Archive     Feed     Impressum

Android: Flugzeugmodus aktivieren/deaktivieren

Hintergrund

Der Flugzeugmodus beschreibt grundsätzlich einen Zustand des Smartphones, in welchem keinerlei Funkverbindungen (GSM, WLAN, NFC, Bluetooth) aktiv sind. Alle drahtlosen Kommunikationsmöglichkeiten sind somit bei aktiviertem Flugzeugmodus deaktiviert.

Um in Flugzeugen Signal-Indifferenzen zu vermeiden, die in Verbindung mit dem Smartphone auftreten können, gilt es daher das Smartphone immer in den Flugzeugmodus zu versetzen. Wie sich dieser Modus in Ihrer App verändern lässt, ist im folgenden Abschnitt beschrieben.

Implementierung

Aktuellen Zustand abfragen

Da der Flugzeugmoduszustand lediglich "getoggled" werden kann, gilt es vorher den aktuellen Zustand abzufragen.

boolean isAirplainModeEnabled = Settings.System.getInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0); 

Durch den Aufruf von getInt() auf Settings.System.AIRPLANE_MODE_ON lässt sich mit Angabe des ContentResolver der aktuelle Zustand als Boolean abfragen.

Zustand verändern

Um den Zustand zu verändern, muss lediglich die Methode getInt() durch putInt im vorherigen Code-Snippet verändert werden:

// Aktiviert den Flugzeugmodus
Settings.System.putInt(getContentResolver(),Settings.System.AIRPLANE_MODE_ON,1);

//Deaktiviert den Flugzeugmodus
Settings.System.putInt(getContentResolver(),Settings.System.AIRPLANE_MODE_ON,0);

Bei jeder Änderung des Flugzeugmodus gilt es den zugehörigen Broadcast (ACTION_AIRPLANE_MODE_CHANGED) auszulösen, um die Änderung anzuwenden:

Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); 
intent.putExtra("state", state); // state == true, wenn der Modus aktiviert wurde, andernfalls false                                      
sendBroadcast(intent);

Zuguterletzt muss noch die Berechtigung zum Schreiben der Einstellung im Manifest hinterlegt werden:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Hire me!