查看文件
  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系统取消自动锁定屏幕相关推荐

  1. android 代码 自动锁定时间,Android系统取消自动锁定屏幕

    查看文件 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 可以找到R.integer.def_screen_off_ ...

  2. Mac版微信取消在锁定屏幕上显示通知的操作方法?

    在日常中使用Mac版微信如果不想在锁定屏幕上显示通知,可将该功能关闭.那我们该如何关闭呢?跟小编一起来看看具体教程吧- 微信Mac版客户端(支持查看朋友圈)正式版支持M1芯片 方法步骤如下: 1.首先 ...

  3. 锁定计算机黑屏怎么办,如何设置计算机以自动锁定屏幕而不出现黑屏

    如何将计算机设置为在锁定后自动使屏幕变黑,但它永远不会休眠,并且如果不处于休眠状态也不会断开连接.-实际上,不锁定屏幕的黑屏设置,您无需在锁定屏幕后直接关闭屏幕.在控制面板中找到电源选项,然后选择&q ...

  4. 在哪里设置自动锁定计算机,win10如何设置自动锁定屏幕_win10设置自动锁屏的步骤...

    我们暂时离开电脑的时候,都会希望屏幕可以自动锁定,有时候没空及时锁屏又不想让电脑一直处于运行状态,又不希望电脑被别人乱动,那么这个时候我们可以设置电脑自动锁定屏幕,该怎么设置呢,这就给大家带来win1 ...

  5. Win10 如何设置自动锁定屏幕

    环境: Win 10 专业版 问题描述: 暂时离开计算机,但不想关机或者注销当前登录,内网安全为了防止未经授权的使用,设置计算机锁定屏幕 解决方案: 方法一: 在默认的设置下,Windows 10不会 ...

  6. 如何让win10超时自动锁定屏幕?

    利用屏幕保护程序: 个性化-锁屏界面-屏幕保护程序设置-选择屏幕保护程序(无)-等待1分钟.即可. 不动电脑1分钟后,会自动锁定屏幕.

  7. Android P 解决“从锁定屏幕中添加用户”功能不起作用

    问题描述 打开设置–>系统–>高级–>多用户,如下图所示: 测试同事发现当没有启用这个功能时候,在锁屏页面还是可以添加新用户,默认是没有打开这个功能的.先看看锁屏页面,在锁屏页面调出 ...

  8. win10系统取消自动更新

    win10系统的自动更新很是烦人,每次自动更新都会重启电脑,即使你做了设置,大多都没什么卵用,那么如何彻底取消win10系统的自动更新,步骤如下: 1 Windows+E,右键"此电脑&qu ...

  9. Android 系统(83)---屏幕尺寸

    Android屏幕尺寸详解 1.重要概念 随着Android厂商对系统的不断定制,Android出现越来越多不同尺寸的手机,由于尺寸和分辨率等不同,从而导致Android的适配成为一个老大难的问题,今 ...

最新文章

  1. FDDWNET:模型参数仅为0.8M,速度和准确率综合性能在轻量级分割网络中达到SOTA
  2. BZOJ.1190.[HNOI2007]梦幻岛宝珠(分层背包DP)
  3. windows下统一mysql编码_mysql5.7 windows7编码统一utf-8
  4. python编写简单赌博游戏赏析及注意事项
  5. android jni 结构体_Android应用开发Android JNI-c/c++调用java方法
  6. 什么是证书透明度(Certificate Transparency)?
  7. windows server2012 Hyper-V改进
  8. laravel blade 标签与vue标签冲突
  9. 1.安装flink-1.12.2
  10. Silverlight、XAML实现滚动文字
  11. UVA11349 Symmetric Matrix【数学】
  12. [冲啊!!!!!]小白SLAM相关基础知识
  13. bzoj 1861 treap
  14. Windows系统服务器IIS7.5 Asp.net支持10万请求的设置方法
  15. Mentor许可不够
  16. c# list转为json_C#中List集合转换JSON
  17. springboot集成activiti6在线编辑器
  18. 计算机键盘调亮度,电脑屏幕亮度怎么调
  19. 路由器服务器账号密码,路由器上网账号密码设置的一般步骤介绍
  20. 同是4G标准,TD和FDD怎么区分?谁更快?

热门文章

  1. 脚本(3D Survival Game Learning)
  2. 在Vmware中优化苹果虚拟机
  3. 一线大厂程序员谈回长沙感受:这不是退路,而是新的开始
  4. 弱监督语义分割论文阅读
  5. 用lwip发送大量数据时,遇到的问题解答记录
  6. idea使用技巧、心得1
  7. echarts自定义名称通过当前时间下载图片
  8. Retrofit(企业主推)
  9. java计算机毕业设计企业员工考勤系统的设计与实现源码+程序+lw文档+mysql数据库
  10. jquery name高级选择器