我创建了一个带有按钮的应用程序,该按钮允许打开和关闭飞行模式。打开飞行模式时工作正常。但奇怪的是,飞行模式在关闭时似乎保持打开状态。
如果我在关机后检查手机设置,它们表明飞行模式已关闭。但是飞行模式图标仍然显示在手机的顶部栏中,按住手机的电源按钮显示飞行模式仍然处于开启状态。
不知道为什么设置仍然打开时会显示为关闭?
这是我用来关闭它的代码 - 我已经调试过,它肯定会遇到这个问题。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 都是一个私有布尔值,用于存储飞行模式的状态。
我可以在这里做一些愚蠢的事情,还是检查这个设置有点不可靠?