UiModeManager - NightMode (Froyo) - PullRequest
       6

UiModeManager - NightMode (Froyo)

4 голосов
/ 23 мая 2010

Я пытался отключить подсветку кнопок в моем приложении, используя функцию ночного режима UiModeManager. Приложение настольных часов по умолчанию (Nexus One) отключает подсветку, когда она затемнена, и я хочу сделать это также.

Я пытался использовать следующий код:

UiModeManager mgr = (UiModeManager) getSystemService (UI_MODE_SERVICE); mgr.setNightMode (UiModeManager.MODE_NIGHT_YES);

Документация UiModeManager.setNightMode (режим int) гласит:

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

Значит ли это, что устройство должно быть физически в настольной док-станции? Я могу установить устройство в автомобильный режим, используя метод UiModeManager.enableCarMode (int flags). Это отлично работает, но не выключает свет, а только затемняет подсветку экрана.

Есть ли способ перевести устройство в настольный режим без использования физической настольной док-станции? Поскольку исходный код FroYo еще не выпущен, я не могу взглянуть на встроенное приложение Desk Clock.

1 Ответ

4 голосов
/ 24 июня 2010

Отвечая на мой собственный вопрос, поскольку исходный код Froyo был только что выпущен:

Я не думаю, что вам нужно использовать класс UIModeManager.Вот как работает приложение DeskClock:

Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();

//Look at this!
winParams.buttonBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF;

win.setAttributes(winParams);

.. И оно работает и для меня.

...