Android系统取消自动锁定屏幕
查看文件
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
可以找到R.integer.def_screen_off_timeout的定义。
<integer name="def_screen_off_timeout">60000</integer>
发现默认值为60000ms,也就是60s。我们只需要把这个参数改为-1。然后重新编译SettingsProvider模块,就OK了。
另外为了防止用户进入系统后,修改锁屏时间,在Setting模块中删除对锁屏时间的设置。这样Android设备就永不锁屏了。
锁屏的代码在LockScreen.java中,可以设置锁屏功能开关的位置。代码位于: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是用来管理是否开启屏幕锁的关键。默认值是打开屏锁,根据注释可以知道他是希望应用程序来修改这个值。但是经过加打印信息发现开机的时候没有任何应用程序会修改它。修改这个值调用如下函数:
/**
* Same semantics as {@link WindowManagerPolicy#enableKeyguard}; provide
* a way for external stuff to override normal keyguard behavior. For instance
* the phone app disables the keyguard when it receives incoming calls.
*/
public void setKeyguardEnabled(boolean enabled) {
synchronized (this) {
if (DEBUG) Log.d(TAG, "setKeyguardEnabled(" + enabled + ")");
mExternallyEnabled = enabled;
if (!enabled && mShowing) {
if (mExitSecureCallback != null) {
if (DEBUG) Log.d(TAG, "in process of verifyUnlock request, ignoring");
// we're in the process of handling a request to verify the user
// can get past the keyguard. ignore extraneous requests to disable / reenable
return;
}
// hiding keyguard that is showing, remember to reshow later
if (DEBUG) Log.d(TAG, "remembering to reshow, hiding keyguard, "+ "disabling status bar expansion");
mNeedToReshowWhenReenabled = true;
hideLocked();
} else if (enabled && mNeedToReshowWhenReenabled) {
// reenabled after previously hidden, reshow
if (DEBUG) Log.d(TAG, "previously hidden, reshowing, reenabling "+ "status bar expansion");
mNeedToReshowWhenReenabled = false;
if (mExitSecureCallback != null) {
if (DEBUG) Log.d(TAG, "onKeyguardExitResult(false), resetting");
mExitSecureCallback.onKeyguardExitResult(false);
mExitSecureCallback = null;
resetStateLocked();
} else {
showLocked();
// block until we know the keygaurd is done drawing (and post a message
// to unblock us after a timeout so we don't risk blocking too long
// and causing an ANR).
mWaitingUntilKeyguardVisible = true;
mHandler.sendEmptyMessageDelayed(KEYGUARD_DONE_DRAWING,KEYGUARD_DONE_DRAWING_TIMEOUT_MS);
if (DEBUG) Log.d(TAG, "waiting until mWaitingUntilKeyguardVisible is false");
while (mWaitingUntilKeyguardVisible) {
try {
wait();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
if (DEBUG) Log.d(TAG, "done waiting for mWaitingUntilKeyguardVisible");
}
}
}
}
经过上面的讨论我们可以发现我们有两个解决方法:
1、定义变量的时候,给其初始化为false。
2、在launcher模块启动的时候,调用setKeyguardEnabled方法,关闭锁屏功能。
Android系统取消自动锁定屏幕相关推荐
- android 代码 自动锁定时间,Android系统取消自动锁定屏幕
查看文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 可以找到R.integer.def_screen_off_ ...
- Mac版微信取消在锁定屏幕上显示通知的操作方法?
在日常中使用Mac版微信如果不想在锁定屏幕上显示通知,可将该功能关闭.那我们该如何关闭呢?跟小编一起来看看具体教程吧- 微信Mac版客户端(支持查看朋友圈)正式版支持M1芯片 方法步骤如下: 1.首先 ...
- 锁定计算机黑屏怎么办,如何设置计算机以自动锁定屏幕而不出现黑屏
如何将计算机设置为在锁定后自动使屏幕变黑,但它永远不会休眠,并且如果不处于休眠状态也不会断开连接.-实际上,不锁定屏幕的黑屏设置,您无需在锁定屏幕后直接关闭屏幕.在控制面板中找到电源选项,然后选择&q ...
- 在哪里设置自动锁定计算机,win10如何设置自动锁定屏幕_win10设置自动锁屏的步骤...
我们暂时离开电脑的时候,都会希望屏幕可以自动锁定,有时候没空及时锁屏又不想让电脑一直处于运行状态,又不希望电脑被别人乱动,那么这个时候我们可以设置电脑自动锁定屏幕,该怎么设置呢,这就给大家带来win1 ...
- Win10 如何设置自动锁定屏幕
环境: Win 10 专业版 问题描述: 暂时离开计算机,但不想关机或者注销当前登录,内网安全为了防止未经授权的使用,设置计算机锁定屏幕 解决方案: 方法一: 在默认的设置下,Windows 10不会 ...
- 如何让win10超时自动锁定屏幕?
利用屏幕保护程序: 个性化-锁屏界面-屏幕保护程序设置-选择屏幕保护程序(无)-等待1分钟.即可. 不动电脑1分钟后,会自动锁定屏幕.
- Android P 解决“从锁定屏幕中添加用户”功能不起作用
问题描述 打开设置–>系统–>高级–>多用户,如下图所示: 测试同事发现当没有启用这个功能时候,在锁屏页面还是可以添加新用户,默认是没有打开这个功能的.先看看锁屏页面,在锁屏页面调出 ...
- win10系统取消自动更新
win10系统的自动更新很是烦人,每次自动更新都会重启电脑,即使你做了设置,大多都没什么卵用,那么如何彻底取消win10系统的自动更新,步骤如下: 1 Windows+E,右键"此电脑&qu ...
- Android 系统(83)---屏幕尺寸
Android屏幕尺寸详解 1.重要概念 随着Android厂商对系统的不断定制,Android出现越来越多不同尺寸的手机,由于尺寸和分辨率等不同,从而导致Android的适配成为一个老大难的问题,今 ...
最新文章
- FDDWNET:模型参数仅为0.8M,速度和准确率综合性能在轻量级分割网络中达到SOTA
- BZOJ.1190.[HNOI2007]梦幻岛宝珠(分层背包DP)
- windows下统一mysql编码_mysql5.7 windows7编码统一utf-8
- python编写简单赌博游戏赏析及注意事项
- android jni 结构体_Android应用开发Android JNI-c/c++调用java方法
- 什么是证书透明度(Certificate Transparency)?
- windows server2012 Hyper-V改进
- laravel blade 标签与vue标签冲突
- 1.安装flink-1.12.2
- Silverlight、XAML实现滚动文字
- UVA11349 Symmetric Matrix【数学】
- [冲啊!!!!!]小白SLAM相关基础知识
- bzoj 1861 treap
- Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法
- Mentor许可不够
- c# list转为json_C#中List集合转换JSON
- springboot集成activiti6在线编辑器
- 计算机键盘调亮度,电脑屏幕亮度怎么调
- 路由器服务器账号密码,路由器上网账号密码设置的一般步骤介绍
- 同是4G标准,TD和FDD怎么区分?谁更快?