【问题标题】:Check current Brightness android检查当前亮度android
【发布时间】:2013-12-09 21:05:49
【问题描述】:

我无法使用我的代码.. 我想检查当前亮度,如果处于自动状态,我的 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)

【问题讨论】:

  • devicecontrolfragment.java 中的第 78 行是什么?
  • 这个:autoBrightToggle.setEnabled(false);
  • 则表示 autoBrightToggle 为空。但你显然已经知道了。您也可能已经检查了 v 的层次结构中存在 luminosita,其中 v 可能来自 xml 布局。
  • 我不明白.. 我的意思是,我的想法似乎是正确的.. 与否?有没有其他方法可以做到这一点?检查亮度模式..如果自动然后检查切换否则不...你知道我该怎么做吗?
  • 你能帮帮我吗?

标签: java android togglebutton brightness


【解决方案1】:

David 请提供更多信息或验证您在 devicecontrolfragment.java 中的 onCreateView() 是否为空值,这就是导致问题的原因。 (devicecontrolfragment.java:第 78 行) 另外,请确保您拥有此操作的相关权限。

【讨论】:

  • 权限没问题。在第 78 行是:autoBrightToggle.setEnabled(false);..我不知道
  • 我建议如下:在您尝试对系统进行任何更改之前,请验证您的 UI 是否正常工作。评论系统方法调用并验证您没有犯任何 UI 错误。接下来尝试验证(使用日志或其他方式)您是否按照代码中的预期从系统中获取了所需的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多