Android: исключение нулевого указателя в режиме полета - PullRequest
0 голосов
/ 13 марта 2012

Я делаю приложение, в котором я должен проверить, находится ли устройство в режиме полета или нет, и я использую следующий код, и это исключение нулевого указателя. Мой код выглядит следующим образом:

 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

1 Ответ

0 голосов
/ 14 марта 2012

Значение npe связано с контекстом, так как здесь контекст равен нулю, так что фрагмент кода, вероятно, ниже:

public  boolean isAirplaneModeOn(Context context) 
            {

            return Settings.System.getInt(ClassName.this.getContentResolver(),Settings.System.AIRPLANE_MODE_ON, 0)!=0;

            }
...