宅科技 - 科技,宅出新生活

搜索
热搜: 活动 交友 discuz
如果你还没有论坛的账号,赶快注册吧!
立即注册

合作站点账号登陆

快捷导航
查看: 164|回复: 1

[知识点] ROM默认不锁屏,不黑屏,删除设置中休眠时间选项

[复制链接] [提交至百度]

87

主题

90

帖子

1777

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1777
发表于 2018-12-29 19:57:43 | 显示全部楼层 |阅读模式
ROM默认不锁屏,不黑屏,删除设置中休眠时间选项参考Android 6.0.1,其他安卓版本原理差不多
1.Settings 删掉屏幕待机选项packages/apps/Settings/res/xml/display_settings.xml
   
  1. <!-- Hide screen sleep
  2.      <ListPreference
  3.              android:key="screen_timeout"
  4.              android:title="@string/screen_timeout"
  5.              android:summary="@string/screen_timeout_summary"
  6.              android:persistent="false"
  7.              android:entries="@array/screen_timeout_entries"
  8.              android:entryValues="@array/screen_timeout_values" /> -->
复制代码

注释掉这个ListPreference
packages/apps/Settings/src/com/android/settings/DisplaySettings.java
添加if条件,如果没有找到这个preference就不执行相关操作;具体可以参考被隐藏的 night_mode
      
  1. mScreenTimeoutPreference = (ListPreference) findPreference(KEY_SCREEN_TIMEOUT);
  2.         if (mScreenTimeoutPreference !=null ) {
  3.             final long currentTimeout = Settings.System.getLong(resolver, SCREEN_OFF_TIMEOUT,
  4.                     FALLBACK_SCREEN_TIMEOUT_VALUE);
  5.             mScreenTimeoutPreference.setValue(String.valueOf(currentTimeout));
  6.             mScreenTimeoutPreference.setOnPreferenceChangeListener(this);
  7.             disableUnusableTimeouts(mScreenTimeoutPreference);
  8.             updateTimeoutPreferenceDescription(currentTimeout);
  9.         }
复制代码

2.禁止锁屏


源码流程:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
  1. if (upgradeVersion == 54)// 版本为54才会设置timeout
  2. ......
  3.     private void upgradeScreenTimeoutFromNever(SQLiteDatabase db) {
  4.         // See if the timeout is -1 (for "Never").
  5.         Cursor c = db.query(TABLE_SYSTEM, new String[] { "_id", "value" }, "name=? AND value=?",
  6.                 new String[] { Settings.System.SCREEN_OFF_TIMEOUT, "-1" },
  7.                 null, null, null);

  8.         SQLiteStatement stmt = null;
  9.         if (c.getCount() > 0) {
  10.             c.close();
  11.             try {
  12.                 stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)"
  13.                         + " VALUES(?,?);");

  14.                 // Set the timeout to 30 minutes in milliseconds
  15.                 loadSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT,
  16.                         Integer.toString(30 * 60 * 1000));
  17.             } finally {
  18.                 if (stmt != null) stmt.close();
  19.             }
  20.         } else {
  21.             c.close();
  22.         }
  23.     }
  24.     ......
  25.             if (SystemProperties.getBoolean("ro.lockscreen.disable.default", false) == true) {
  26.                 loadSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, "1");
  27.             } else {
  28.                 loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED,
  29.                         R.bool.def_lockscreen_disabled);
  30.             }
复制代码
timeout若是-1,则永不锁屏

购买主题 本主题需向作者支付 20 金币 才能浏览



上一篇:魅蓝note6公开版电信版移动版各版本官方卡刷包下载合集
下一篇:请教各位大神
回复

使用道具 举报

0

主题

20

帖子

21

积分

吃瓜群众

Rank: 1

积分
21
发表于 5 天前 | 显示全部楼层
楼主威武楼主威武
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信公众号
微信扫码关注,
回复“领取金币”
每周抽取5位
会员奖励500金币

手机版|小黑屋|网站地图|宅科技 ( 粤ICP备15107403号

GMT+8, 2019-2-24 04:50 , Processed in 1.803968 second(s), 32 queries .

Copyright © 2016 宅科技 | 智能终端极客社区

Powered by Discuz! X3.2 Licensed

快速回复 返回顶部 返回列表