实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位。具体如下:
1、在Manifest.xml文件里面用user-permission声明。代码如下:
<uses-permission android:name="android.permission.WAKE_LOCK">
</uses-permission>
这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能。
2、在程序中用代码实现。代码如下:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
把这段代码加在setContentView(R.layout.main)之前即可。
这种方法,安装时,不会提示安装人是否允许使用禁止休眠功能。
我们为了让系统永不锁屏,只需要把资源 R.integer.def_screen_off_timeout设为-1即可。查看文件
可以找到R.integer.def_screen_off_timeout的定义。
发现默认值为60000ms,也就是60s。我们只需要把这个参数改为-1。然后重新编译SettingsProvider模块
该文件中有一个变量定义如下:
* External apps (like the phone app) can tell us to disable the keygaurd.
*/
private boolean mExternallyEnabled = true;
mExternallyEnabled是用来管理是否开启屏幕锁的关键。默认值是打开屏锁
当然也可以在launcher模块启动的时候,调用setKeyguardEnabled方法,关闭锁屏功能