Проверить текущую яркость Android

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

public static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1;
---
---


int curBrightnessValue = android.provider.Settings.System.getInt(getActivity().getContentResolver(), 
                android.provider.Settings.System.SCREEN_BRIGHTNESS,-1);

        //
        if (curBrightnessValue == 1){
            autoBrightToggle.setEnabled(true);
        } else {
            autoBrightToggle.setEnabled(false);
        }

конечно, тогда есть переключатель:

autoBrightToggle = (ToggleButton)v.findViewById(R.id.luminosita);
        autoBrightToggle.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (autoBrightToggle.isChecked()) {
                    setAutoBrightness(true);
                } else {
                    setAutoBrightness(false);
                }
            }
        });
---
---
---
void setAutoBrightness(boolean value) {
        if (value) {
            Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
        } else {
            Settings.System.putInt(getActivity().getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
        }
    }

Но не работает. с этим logCat происходит сбой

12-09 22:03:35.960: E/AndroidRuntime(15136): FATAL EXCEPTION: main
12-09 22:03:35.960: E/AndroidRuntime(15136): Process: com.dd.androreboot, PID: 15136
12-09 22:03:35.960: E/AndroidRuntime(15136): java.lang.NullPointerException
12-09 22:03:35.960: E/AndroidRuntime(15136):    at com.dd.androreboot.devicecontrolfragment.onCreateView(devicecontrolfragment.java:78)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.Fragment.performCreateView(Fragment.java:1700)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.BackStackRecord.run(BackStackRecord.java:684)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.os.Handler.handleCallback(Handler.java:733)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.os.Handler.dispatchMessage(Handler.java:95)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.os.Looper.loop(Looper.java:136)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at android.app.ActivityThread.main(ActivityThread.java:5017)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at java.lang.reflect.Method.invokeNative(Native Method)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at java.lang.reflect.Method.invoke(Method.java:515)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
12-09 22:03:35.960: E/AndroidRuntime(15136):    at dalvik.system.NativeStart.main(Native Method)

person David_D    schedule 09.12.2013    source источник
comment
Что такое строка 78 в devicecontrolfragment.java?   -  person Joel Fernandes    schedule 10.12.2013
comment
это: autoBrightToggle.setEnabled(false);   -  person David_D    schedule 10.12.2013
comment
тогда это означает, что autoBrightToggle имеет значение null. но вы это уже знаете, очевидно. вы также, вероятно, уже проверили, что luminosita присутствует в иерархии v, где v, вероятно, происходит из макета xml.   -  person njzk2    schedule 10.12.2013
comment
Я не могу понять.. В смысле, кажется правильной моя мысль.. или нет? Есть ли другой способ сделать это? Проверьте режим яркости. Если автоматический, то проверьте переключатель, иначе нет... Знаете, как я могу это сделать?   -  person David_D    schedule 10.12.2013
comment
Не могли бы вы мне помочь?   -  person David_D    schedule 10.12.2013


Ответы (1)


Дэвид, пожалуйста, предоставьте дополнительную информацию или проверьте свой onCreateView() в devicecontrolfragment.java для нулевых значений, вот что вызывает здесь проблему. (devicecontrolfragment.java: строка 78) В качестве примечания также убедитесь, что у вас есть соответствующие разрешения для этого действия.

person mDroid    schedule 09.12.2013
comment
разрешения в порядке. В строке 78 это: autoBrightToggle.setEnabled(false);..я не знаю - person David_D; 10.12.2013
comment
Я предлагаю следующее: прежде чем пытаться внести какие-либо изменения в систему, убедитесь, что ваш пользовательский интерфейс работает правильно. Прокомментируйте вызовы системных методов и убедитесь, что вы не допустили ошибок пользовательского интерфейса. Затем попробуйте проверить (с помощью журналов или чего-либо еще), что вы получаете необходимую информацию из системы, как вы ожидаете в своем коде. - person mDroid; 10.12.2013