2011-07-03 2 views
4

Теперь я снова попробую.Разработка Android: изменение яркости экрана в сервисе

Я хочу изменить яркость экрана.

Я пробовал:

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
layoutParams.screenBrightness = 0.5F; // set 50% brightness 
getWindow().setAttributes(layoutParams); 

и, кажется, работает в деятельности, но когда я нахожусь в службе я получаю эту ошибку getWindow() компиляции.

ответ

4

Сервис не может изменить яркость экрана таким образом. У сервиса нет пользовательского интерфейса, поэтому он не имеет Window.

Вы можете попытаться изменить яркость всей системы с помощью системы SCREEN_BRIGHTNESS. Я понятия не имею, работает ли это так, как я этого не пробовал.

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

+0

Но моя служба проверяет, как каждые 10 минут, как заставить сервис запускать другой класс? – carefacerz

+0

@carefacerz: Какую возможную цель у вас есть для «проверки как каждые 10 минут» для яркости экрана? – CommonsWare

+0

на самом деле как poweraver ... – carefacerz

0

Вы должны были бы начать деятельность с вашей службы, все, что вам нужно сделать, это:

Intent myIntent = new Intent(getBaseContext(), MyActivity.class); 
getApplication().startActivity(myIntent); 

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

Я включил полный код здесь: https://stackoverflow.com/a/9848456/1204377

Позвольте мне знать, если это до сих пор неясно.

Смежные вопросы