我正在制作一个应用程序,我必须检查设备是否处于飞行模式,我正在使用以下代码,它是空指针异常。我的代码如下:
public static boolean isAirplaneModeOn(Context context)
{
System.out.println("test1");
return Settings.System.getInt(context.getContentResolver(),Settings.System.AIRPLANE_MODE_ON, 0) != 0;
}
/**
*
* @param status
*/
public void setAirplaneMode(Context context,boolean status)
{System.out.println("test111");
boolean isAirplaneModeOn = isAirplaneModeOn(context);// **null pointer exception**
if(isAirplaneModeOn && status)
{
return;
}
if(!isAirplaneModeOn && !status)
{
return;
}
if(isAirplaneModeOn && !status)
{
Settings.System.putInt(getApplicationContext().getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", 0);
getApplicationContext().sendBroadcast(intent);
return;
}
if(!isAirplaneModeOn && status)
{
Settings.System.putInt(getApplicationContext().getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 1);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", 1);
getApplicationContext().sendBroadcast(intent);
return;
}
}
任何人都可以告诉我如何获得 mAirplaneEnabled 标志值吗?
我的logcat如下:
03-13 14:57:04.507: I/System.out(9185): test111
03-13 14:57:04.507: I/System.out(9185): test1
03-13 14:57:04.515: I/System.out(9185): java.lang.NullPointerException
答案 0 :(得分:0)
npe是由于上下文,因为上下文在这里为空,因此代码片段可能在下面:
public boolean isAirplaneModeOn(Context context)
{
return Settings.System.getInt(ClassName.this.getContentResolver(),Settings.System.AIRPLANE_MODE_ON, 0)!=0;
}