// 最大的屏幕亮度
private float maxLight;
// 當前的亮度
private float currentLight;
// 用來控制屏幕亮度
private Handler lightHandler;
// 60秒時間不點擊屏幕,屏幕變暗
private long delayTime = 60 * 1000L;
protected void onCreate() {
// 保持屏幕常亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// 屏幕亮度控制
lightHandler = new Handler(Looper.getMainLooper());
maxLight = getLightness();
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (currentLight == 1) {
startSleepTask();
return false;
}
startSleepTask();
return super.dispatchTouchEvent(ev);
}
/**
* 獲取亮度
*/
private float getLightness() {
WindowManager.LayoutParams localLayoutParams = this.getWindow().getAttributes();
return localLayoutParams.screenBrightness;
}
/**
* 設置亮度
*/
private void setLightness(int light) {
currentLight = light;
WindowManager.LayoutParams localLayoutParams = this.getWindow().getAttributes();
localLayoutParams.screenBrightness = (light / 255.0F);
this.getWindow().setAttributes(localLayoutParams);
}
/**
* 開啓休眠任務
*/
private void startSleepTask() {
setLightness((int) maxLight);
stopSleepTask();
lightHandler.postDelayed(sleepWindowTask, delayTime);
}
/**
* 結束休眠任務
*/
private void stopSleepTask() {
lightHandler.removeCallbacks(sleepWindowTask);
}
/**
* 休眠任務
*/
Runnable sleepWindowTask = new Runnable() {
@Override
public void run() {
setLightness(1);
}
};
一對一視頻直播Android 屏幕常亮N秒後自動暗屏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.