Обновите Яркость дисплея на Android после ее программного изменения - PullRequest
9 голосов
/ 06 декабря 2010

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

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

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 06 декабря 2010

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

1 голос
/ 06 декабря 2010

Во-первых, значение, которое нужно изменить в LayoutParams, равно screenBrightness . Затем вам нужно будет сделать window.setAttributes , чтобы применить его. Как сказал GeekYouUp , вы можете сделать фиктивное действие, чтобы получить объект Window.

0 голосов
/ 13 декабря 2014

Можете ли вы использовать этот код в вашем 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);

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

...