直播源码Android(安卓)屏幕常亮N秒后自动暗屏
16lz
2021-01-25
// 最大的屏幕亮度 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(); }@Overridepublic 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(安卓)横竖屏切换小结
- Android(安卓)自定义FloatView实现悬浮视图
- android listview滑动设置浮标半透明效果
- android PowerManager wakelock
- Android(安卓)的Activity.getWindowManager().getDefaultDisplay
- Android(安卓)dialog——点击「屏幕」或者「返回键」不消失
- 屏幕适配问题
- Android解锁屏幕失效问题
- Android(安卓)onTouch 点击事件执行两次分析