Android-разработка: изменение яркости экрана в сервисе


Теперь я попробую еще раз.

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

Я пробовал:

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

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

2   4  

2 ответа:

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

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

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

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

Intent myIntent = new Intent(getBaseContext(), MyActivity.class);
getApplication().startActivity(myIntent);
Где MyActivity-это деятельность, которую вы хотите начать. Внутри этого действия вы можете поместить код для изменения яркости окна, он будет работать.

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

Дайте мне знать, если все еще неясно.