Как установить 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" />