android 不休眠不锁屏

实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位。具体如下:

1、在Manifest.xml文件里面用user-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即可。查看文件

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

可以找到R.integer.def_screen_off_timeout的定义。

60000

发现默认值为60000ms,也就是60s。我们只需要把这个参数改为-1。然后重新编译SettingsProvider模块

frameworks/policies/base/phone/com/android/internal/policy/impl/KeyguardViewMediator.java

该文件中有一个变量定义如下:

/**
* External apps (like the phone app) can tell us to disable the keygaurd.
*/
private boolean mExternallyEnabled = true;

mExternallyEnabled是用来管理是否开启屏幕锁的关键。默认值是打开屏锁

当然也可以在launcher模块启动的时候,调用setKeyguardEnabled方法,关闭锁屏功能

你可能感兴趣的:(Android,学习)