Как включать и выключать автоматическую яркость? (не повторение)

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

Так что помощь будет огромной.

5
задан Sergey Glotov 21 December 2012 в 08:49
поделиться