Я создал приложение с кнопкой, которая позволяет включать и выключать режим самолета. Прекрасно работает при включении режима полета. Но, как ни странно, режим самолета, похоже, остается включенным, когда он отключен.Невозможно отключить Режим полета
Если я проверю настройки телефона после отключения, они указывают, что режим полета выключен. Но значок режима самолета по-прежнему отображается в верхней строке телефона, и удерживание кнопки питания телефона показывает, что режим полета все еще включен.
Не знаете, почему настройка будет отображаться как выключенная, когда она все еще включена?
Вот код, который я использую, чтобы отключить его - я отлаживал, и это определенно поражает это. mContext переменная Я использую для хранения контекста, это передается в класс параметров, которые затем методы для включения режима полета и выключения:
System.putInt(mContext.getContentResolver(),
android.provider.Settings.System.AIRPLANE_MODE_ON, 0);
this.airplaneOn = false;
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", 0);
mContext.sendBroadcast(intent);
И вот код, я использую, чтобы проверить статус самолетного режима -
public boolean isAirplaneOn() {
int airplaneMode = 0;
try {
airplaneMode = System.getInt(mContext.getContentResolver(),
android.provider.Settings.System.AIRPLANE_MODE_ON);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (airplaneMode == 1) {
this.airplaneOn = true;
} else {
this.airplaneOn = false;
}
return airplaneOn;
}
В обеих случаях this.airplaneOn является частным булевым, который сохраняет статус самолетного режима.
Могу ли я сделать что-то глупо здесь или проверить этот параметр как-то ненадежным?
Это треснуло его - прохождение булевых вместо 0/1 действительно заставляет его работать. Отлично, спасибо! – vinnyh