请选择 进入手机版 | 继续访问电脑版
搜索
热搜: 活动 交友 discuz
查看: 2051|回复: 0

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

[复制链接]

41

主题

42

帖子

1142

积分

超级版主

Rank: 8Rank: 8

积分
1142
发表于 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 趣币 才能浏览




上一篇:获取安卓应用包名和入口 Activity
下一篇:教你如何在设置关于手机中添加作者信息
回复

使用道具 举报

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

本版积分规则

抖音账号
关注抖音
加入粉丝群,抽取论坛金币


Archiver|手机版|小黑屋|IT趣-GEEK社区

GMT+8, 2024-3-29 20:56 , Processed in 0.089571 second(s), 24 queries .

Powered by Discuz! X3.4. 技术支持 by 巅峰设计

© 2001-2013 Comsenz Inc.

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