Обновить яркость дисплея на Android после изменения его программно

StackOverflow https://stackoverflow.com/questions/4366255

  •  09-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь обновить яркость дисплея с виджета, но у меня есть некоторые проблемы.

Чтобы изменить уровень яркости, я использую:

Settings.System.putInt(context.getContentResolver(),android.provider.Settings.System.SCREEN_BRIGHTNESS, 200);

Это изменяет настройку дисплея (на самом деле на дисплее -> яркость, уровень правильный), но эффективная яркость дисплея не изменяется. Если я заблокирую экран и разблокируйте яркость, наконец, изменяется на значение, которое я установил.

Я предполагаю, что это проблема обновления настроек, так как настройки дисплея могут быть немедленно обновлены после изменения настроек?

Я прочитал это WindowManager.LayoutParams lp = getWindow().getAttributes(); Следует использовать, но я работаю в виджете приложения, поэтому GetWindow () не может быть вызван.

Это было полезно?

Решение

У меня была похожая проблема и только что создала активность без пользовательского интерфейса, чтобы сделать изменение яркости, использовали намерение запустить его из виджета приложения.

Другие советы

Во-первых, значение для модификации в LayoutParams Screenbrights. Отказ Вам тогда придется сделать window.ettattributes. применить это. В виде Geekyouup. Сказал, что вы можете сделать манекетную деятельность, чтобы получить ваш окно объекта.

Можете ли вы использовать этот код в вашем Remoteview,

Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);

// This makes the new screen brightness effective
WindowManager.LayoutParams layoutParams = ((Activity)context).getWindow().getAttributes();
float b = brightness/255.0f;
if(b == 0.0)    
    b = 0.01f;
layoutParams.screenBrightness = b;
((Activity)context).getWindow().setAttributes(layoutParams);

Этот код отлично работает, когда вы устанавливаете яркость экрана телефона изнутри пользовательский класс, который не расширяя активность Но вам нужен только контекст.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top