Проблема с тусклым экраном Android

#android #screen

#Android #экран

Вопрос:

Этот код уменьшает яркость экрана, и это работает для устройств Android 2.2. Но когда я попробовал это на своем эмуляторе (2.3) и на телефоне моего друга (2.3), я перешел на экран блокировки.

Есть идеи, почему и как я должен сделать, чтобы заставить его работать с 2.3?

  WindowManager.LayoutParams lp = getWindow().getAttributes();
    lp.screenBrightness = 0;
    getWindow().setAttributes(lp);
  

Ответ №1:

На данный момент это старый вопрос, но эмулятор не поддерживает затемнение экрана, и такое поведение — просто сбой, мой делает то же самое в 2.1, 2.2 и т.д. В эмуляторе.

Что касается 2.3, я этого не видел. Пытались ли вы вместо этого установить 0 на что-то вроде 0.01, я читал (хотя никогда не видел), что на некоторых устройствах установка его на ноль приводит к этому, и на самом деле на эмуляторе, если вы используете 0.01, он не перейдет на экран блокировки, хотя, конечно, он по-прежнему ничего не делает (неподдерживаемое поведение)

Вы также можете попробовать логически или следующим образом

 lp.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
  

Хотя я читал, что это противоречит интуиции, это позволяет поддерживать сенсорный экран включенным на устройствах, которые становятся черными при значении 0, и устраняет проблему, с которой также сталкивается телефон ваших друзей.

Честно говоря, учитывая все разные результаты, представленные на разных версиях ОС и платформах, я стараюсь держаться подальше от настройки screenBrightness, поскольку она кажется довольно ненадежной.