2011-07-03 91 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

實際上就像一個powersaver ... – carefacerz

0

您需要從服務開始的活動,所有你需要做的是這樣的:

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

其中MyActivity是要啓動活動。在該活動內部,您可以將代碼更改爲窗口亮度,它將起作用。

我已經包含了完整的代碼在這裏:https://stackoverflow.com/a/9848456/1204377

讓我知道,如果它仍然不清楚。