我只是试图打开和关闭自动亮度。 我开始使用此代码(onCreate方法内)如何打开和关闭自动亮度? (不是重复)
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.brightToggle);
// display auto brightness state
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.autoToggle);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
autoBrightToggle.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (autoBrightToggle.isChecked()) {
setAutoBright(true);
} else {
setAutoBright(false);
}
}
}); // end anonymous OnClickListener function
// toggle the brightness mode
private void setAutoBright(boolean mode) {
if (mode) {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
} else {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
}
}
似乎这不工作。 setAutoBrightnessMode()方法也在onResume()中再次调用,但具有相同的非结果。 无论如何,如果有人觉得这个问题是多余的,但是其他帖子没有让我去哪里,我很抱歉!
(FWIW - 我在我的旧的Droid X和我的Galaxy Nexus的测试这个,而不是模拟器)
编辑 - 更新本: 我确信,现在我没有看到任何我99%更改“设置”面板和桌面小部件中反映的“自动亮度”模式 - 尽管我实际上可能正在更改其值。 问题的一部分是我不知道如果自动亮度开启或不开启,确切地确定!
例如,屏幕快速和明显地改变?我一直期待根据环境立即发现明亮的亮度变化 - 但也许这些变化很微妙?并在更长的时间?或者在亮度变化之前可能需要30秒或更长时间的环境变化?
有人可以建议我如何跟踪?我试着查询Settings.System.SCREEN_BRIGHTNESS_MODE恒 - 挂钩这种方法到一个文本框:
private int getAutoBrightnessMode() {
try {
int brightnessMode = Settings.System.getInt(cr, SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
int brightnessMode = -10000;
}
return brightnessMode;
}
但它始终即使读数为0,一个的onResume()。 : - ((
我知道这是一个简单的程序,但我试图自己学习这些东西,并且几乎没有正式的CS培训......所以我只能说我很这个沮丧,觉得我把自己累得一个角落里,在这一点上我很恼火同心难改了。
因此,帮助将是巨大的。
什么都没有?我希望这是简单的! – 2012-02-19 07:22:20
我想你将不得不在Android清单中授予适当的权限(例如'android.permission.WRITE_SETTINGS')。 – 2012-02-20 20:10:53
谢谢 - 我确实这么做了。应该提到这一点。 – 2012-02-21 00:44:08