Как установить AIRPLANE_MODE_ON в значение "True" или "ON"?

Я планирую отказаться от вызова, и я считаю это одним из обходных путей для этого. Как активировать режим полета с помощью кода?

Таким образом, я откажусь от вызова на основе какого-либо события.

4 ответа

Решение

Смотрите статью в блоге Android: Управление режимом полета,

Работает только до 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);

где isEnabled является ли режим самолета включен или нет.

Пожалуйста, имейте в виду, что это больше невозможно, начиная с Android 4.2 и выше.

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

  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;
    }
  }

Вы можете сделать это:

              Runtime.getRuntime().exec("settings put global airplane_mode_on "+mode);
        Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        intent.putExtra("state", mode);
        this.sendBroadcast(intent);

uid оболочки может изменить airplane_mode_on, но отправить ACTION_AIRPLANE_MODE_CHANGED необходимо разрешение (должен быть системный uid)

      <uses-permission android:name="android.permission.WRITE_SETTINGS" />
Другие вопросы по тегам