android的屏幕保持常亮

1.Wake Lock是一种锁的机制

在Manifest.xml文件里面用user-permission声明。代码如下:

这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能。

<uses-permission android:name="android.permission.WAKE_LOCK" />

为了不对其他程序造成影响,启用和关闭屏幕常亮的代码一般被放在 Activity 的 onResume() 和 onPause() 事件中。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
//MyTag可以随便写,可以写应用名称等
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "MyTag");
//在释放之前,屏幕一直亮着(有可能会变暗,但是还可以看到屏幕内容,换成PowerManager.SCREEN_BRIGHT_WAKE_LOCK不会变暗)
wl.acquire();  
wl.release();

2.使用屏幕的keep screen on flag

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

3.在vew里面有keep flag:

android:keepScreenOn="true"

原文地址:https://www.cnblogs.com/deman/p/4673655.html