我用一个按钮创建了一个应用程序,允许开启和关闭飞行模式。打开飞行模式时可以正常工作。但奇怪的是,飞机模式在切断时似乎仍然存在。无法关闭飞行模式
如果我在关闭手机后检查手机设置,则表示飞机模式已关闭。但飞行模式图标仍然显示在手机的顶部栏中,并按住手机的电源按钮显示飞行模式仍然打开。
不确定为什么设置会在关闭时显示为关闭状态?
这里是我用来关闭它的代码 - 我已经调试过了,它绝对是这样的。 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