2013-12-09 3 views
0

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

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) 
+0

Что такое строка 78 в devicecontrolfragment.java? – JoelFernandes

+0

это: 'autoBrightToggle.setEnabled (false);' –

+0

, то это означает, что autoBrightToggle имеет значение NULL. но вы это уже знаете. вы также, вероятно, уже проверили, что luminosita присутствует в иерархии 'v', где v, вероятно, происходит из макета xml. – njzk2

ответ

0

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

+0

Разрешения в порядке. На строке 78 это: 'autoBrightToggle.setEnabled (false);' ..i не знаю –

+0

любое решение, пожалуйста? –

+0

Я предлагаю следующее: Прежде чем пытаться внести какие-либо изменения в систему, убедитесь, что ваш пользовательский интерфейс работает правильно. Прокомментируйте вызовы системных методов и убедитесь, что вы не делали ошибок UI. Затем попробуйте проверить (с журналами или что-то еще), что вы получите необходимую вам информацию из системы, как вы ожидаете в своем коде. – mDroid

Смежные вопросы