Обновление дисплея из виджета? - PullRequest
10 голосов
/ 10 января 2011

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

В сервисе, который я вызываю из виджета, я делаю это, чтобы установить яркость:

Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200);

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

Я также читал на нескольких сайтах, что что-то вроде этого обновит экран, но мы не можем использовать это, поскольку мы находимся в виджете. Активность виджета и сервис не могут использовать getWindow.

WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 100 / 100.0f;
getWindow().setAttributes(lp);

Как еще все эти виджеты, такие как Красивые виджеты, Управление питанием, Расширенные элементы управления и т. Д., Делают это?

Обновление: Другой автор рекомендовал запустить пустое действие и выполнить обновление WindowManager. Это работает, но на секунду вызывает ужасный черный экран. Так как другие виджеты не делают этого, должен быть способ не показывать пустой черный экран.

Ответы [ 2 ]

8 голосов
/ 27 января 2011

Для черного экрана установите тему на занятие, содержащее это:

<style name="Theme.Transparent" parent="android:Theme"> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowBackground">@color/transparent</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:backgroundDimEnabled">false</item> 
</style>

Спасибо Себастьяну за ответ, я скопировал его сюда.

0 голосов
/ 14 октября 2012

Бесстыдное копирование и вставка из Изменение яркости экрана Настройка системы Android

android:theme="@android:style/Theme.Translucent.NoTitleBar"

делает все это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...