Я просто пытаюсь включить и выключить автояркость. Я начал с этого кода (внутри метода 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 ... Так что все, что я могу сказать, это то, что я очень разочарован этим и чувствую, что я Я загнал себя в угол, и в этот момент я так раздражен, что больше не могу ясно мыслить.
Так что помощь была бы велика.
android.permission.WRITE_SETTINGS
). - person barti_ddu   schedule 21.02.2012