David Prun
David Prun

Reputation: 8433

How to set the AIRPLANE_MODE_ON to "True" or ON?

I am planning to drop a call and I find this as one of workaround for that. How do I activate the airplane mode via code?

This way I will drop the call based on some event.

Upvotes: 5

Views: 17790

Answers (4)

Vic
Vic

Reputation: 31

You can do this:

        int mode = isEnable ? 1 : 0;
        Runtime.getRuntime().exec("settings put global airplane_mode_on "+mode);
        SystemClock.sleep(2000);
        Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        intent.putExtra("state", isEnable);
        this.sendBroadcast(intent);

shell uid can change airplane_mode_on ,but send ACTION_AIRPLANE_MODE_CHANGED need permission (need to be system uid)

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

Upvotes: 0

Jess
Jess

Reputation: 42928

See the blog article Android: Controlling Airplane Mode ,

Works only upto API 16

// Toggle airplane mode.
Settings.System.putInt(
      context.getContentResolver(),
      Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1);

// Post an intent to reload.
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", !isEnabled);
sendBroadcast(intent);

where isEnabled is whether airplane mode is enabled or not.

Upvotes: 15

Tommie
Tommie

Reputation: 1965

Please keep in mind that this is no longer possible starting from Android 4.2 and above.

http://developer.android.com/reference/android/provider/Settings.Global.html#AIRPLANE_MODE_ON

Upvotes: 1

Ashok Domadiya
Ashok Domadiya

Reputation: 1122

  public static boolean getAirplaneMode(Context context) {
      try {
      int airplaneModeSetting = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON);
      return airplaneModeSetting==1?true:false;
    } catch (SettingNotFoundException e) {
      return false;
    }
  }

Upvotes: 0

Related Questions