Android 控制屏幕亮度 以及无动作定时黑屏 触摸点亮
首先在 Android中的Timer定时 经验证无法正常使用 需要掉用Handler来执行具体细节
///首先定义 读秒参数iSecondCount
public static int iSecondCount = 0;
Timer timer = new Timer();
//定义handler执行读秒动作即读秒数加一 同时判断是否超过所设置的秒数 超过及执行动作 降低亮度为1 不降为0因为Android内部机制还是什么原因...如果亮度直接将为0的黑屏时..会产生机器假死的情况..至今不知如何解决 所以改成1/255 来实现
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
iSecondCount++;
if(iSecondCount>20)
{
setBritness(1);
}
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
///计时器开始 1000毫秒执行一次
timer.schedule(task, 0,1000);
//默认初始亮度200
setBritness(200);
}
//设置亮度事件
private void setBritness(float brightness)
{
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = brightness / 255.0f;
getWindow().setAttributes(params);
}
///触摸事件中 点亮屏幕 并且将读秒数置0
@Override
public boolean onTouchEvent(MotionEvent event)
{
iSecondCount=0;
setBritness(200);
if(viewFlipper==null)
return false;
return this.detector.onTouchEvent(event);
}