如果想第一次烧录系统开机就是永不休眠。这个需要修改def_screen_off_timeout = -1,在android 第一次开机的时候会去读取这个值,

在文件SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

loadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT,

R.integer.def_screen_off_timeout);

中将def_screen_off_timeout 保存在数据库中SCREEN_OFF_TIMEOUT = def_screen_off_timeout,

当启动设置应用时,路径(package/apps/Settings)

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

........

final long currentTimeout = getTimoutValue();

.......

updateTimeoutPreferenceDescription(currentTimeout);

private int getTimoutValue() {

int currentValue = Settings.System.getInt(getActivity()

.getContentResolver(), SCREEN_OFF_TIMEOUT,

FALLBACK_SCREEN_TIMEOUT_VALUE);

Xlog.d(TAG, "getTimoutValue()---currentValue=" + currentValue);

int bestMatch = 0;

int timeout = 0;

final CharSequence[] valuesTimeout = mScreenTimeoutPreference

.getEntryValues();

for (int i = 0; i < valuesTimeout.length; i++) {

timeout = Integer.parseInt(valuesTimeout[i].toString());

if (currentValue == timeout) {

return currentValue;

} else {

if (currentValue > timeout) {

bestMatch = i;

}

}

}

Xlog.d(TAG, "getTimoutValue()---bestMatch=" + bestMatch);

return Integer.parseInt(valuesTimeout[bestMatch].toString()); }

读取数据中SCREEN_OFF_TIMEOUT 的值并更新到设置应用中。

在文件 PowerManagerService.java的函数 getScreenOffTimeoutLocked 修改前:

private int getScreenOffTimeoutLocked() {

int timeout = mScreenOffTimeoutSetting;

if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {

timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);

}

if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {

timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);

}

return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);

}

修改后

private int getScreenOffTimeoutLocked() {

int nosleep;

int timeout = mScreenOffTimeoutSetting;

if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {

timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);

}

if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {

timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);

}

nosleep = mScreenOffTimeoutSetting;

if(nosleep < 0) {

nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin ;

return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin);

}

return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);

}

这个函数会在设置时间有改动的时候被调用,

mMaximumScreenOffTimeoutFromDeviceAdmin 为系统支持最大不休眠的时间 大概为2147483647 ,大概200小时 。远远超过我们的电池电量的时间。

修改设置应用的代码 Settings/res/values/arrays.xml

never

15 seconds

30 seconds

1 minute

2 minutes

5 minutes

10 minutes

30 minutes

第一行添加 never

-1

15000

30000

60000

120000

300000

600000

1800000

第一行添加 -1

res/values-zh-rCN/arrays.xml 中 添加第一行

"永不 休眠"

"15 秒"

"30 秒"

"1 分钟"

"2 分钟"

"5 分钟"

"10 分钟"

"30 分钟"

在函数 updateTimeoutPreferenceDescription 中修改

if (currentTimeout < 0) {

// Unsupported value

summary = "";

}

改为

if (currentTimeout < -1)

在下面代码中添加

if (entries.length != 0) {

summary = preference.getContext().getString(

R.string.screen_timeout_summary, entries[best]);

//add new code

if(currentTimeout < 0)

summary =entries[best].toString();

//end new code

} else {

android防止程序休眠,android 设置 永不休眠相关推荐

  1. ACR1311U-N2蓝牙NFC读卡器|读写器如何设置永不休眠方法

    ACR1311U-N2蓝牙NFC读卡器|读写器是一款支持13.56MHZ,支持ISO14443A与ISO18092协议的高频无线蓝牙刷卡设备. 本文将重点介绍ACR1311U-N2蓝牙NFC读卡器|读 ...

  2. Android应用程序文件结构,Android项目文件及应用程序—目录结构详解

    1. src目录:是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中.如建立EditView工程,ADT根据用户在工程向导中的"Create Acti ...

  3. android获取程序名称,Android获取应用程序名称(ApplicationName)示例

    MainActivity如下: 代码如下: package cn.testapplicationname; import android.os.Bundle; import android.widge ...

  4. PhoneGap对比html5写android应用程序【android进化三十八】

    什么是PhoneGap,其实就是在手机中可以写html代码的插件,下面一段话来源网摘"PhoneGap是一个开放源代码的,跨平台的构建移动应用程序的框架.在PhoneGap中,完全通过HTM ...

  5. android 网络程序下载,Android之网络文件下载

    环境搭建: 本地服务器(下载wamp[Windows, Apache, MySQL, PHP ],安装即可,然后将网页或文件放进 www directory) 虚拟机(访问本地服务器的ip:10.0. ...

  6. android应用程序耗电,Android的十大耗电量应用程序,在软件中排名第一

    腾讯数字新闻(编译: 郑双燕)如今,智能手机变得越来越流行,有许多使用户"想要"的应用程序,一些游戏令人上瘾,一些工具在我们的生活中起着非常重要的作用. 但是,尽管这些应用程序对我 ...

  7. android拍照程序崩溃,android

    我是android开发的新手. 我们使用flutter开发我们的应用程序. 最近我们发现有一个错误. 当我们安装该应用程序后,并第一次拍照,该应用程序将崩溃. 这是日志 W/libEGL (14538 ...

  8. android登录程序代码,android 应用软件注册与自动登录代码

    琢磨了很久 实现系统第一次启动显示欢迎及快速注册界面,注册成功后下次运行实现自动登录. 系统启动后首先进入系统主界面,读取用户名和密码,如果为空则直接跳转到快速注册界面,否则系统正常运行. 快速注册界 ...

  9. android查看程序缓存文件,Android App的文件缓存目录

    Android app的文件缓存目录可以是app内置私有的目录,当然也可以选择外置sdcard目录 内置私有目录 /data/data/[packagename]/files 文件缓存目录,一般存小的 ...

  10. android应用 程序结构,Android应用结构

    不同的应用对于界面结构的需求是不同的.例如: 像计算器和相机应用,构建在一个主要的活动 (activity) 上,主要是这个单一的活动处理各种操作 像拨号应用,主要的是在几个不同的活动中切换,没有很深 ...

最新文章

  1. 面试官不会告诉你的16问 Java基础面试题
  2. Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和
  3. PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM
  4. 018.Zabbix维护时间和模板导入
  5. 十、Spring的@Profile注解
  6. IOS程序中打开自己的程序,测试机器中是否装了自己的程序(openURL:,canOpenURL:)
  7. 华为服务器gpu卡型号,gpu服务器与配置
  8. tomcat 内存调整
  9. python类的构造方法名称_Python的面向对象、Class 概念与使用
  10. 如何使用 Java8 实现观察者模式?(上)
  11. python doc转pdf
  12. 海康录制视频文件无法播放以及FFmpeg最新版下载
  13. java 之DelayQueue实际运用示例
  14. go 学习笔记之10 分钟简要理解 go 语言闭包技术
  15. 分享一个特别好用的站长在线工具箱
  16. 期权、期货和权证比较
  17. C++单元测试框架Gtest的配置与使用过程
  18. 重磅!2022国家杰青,硕博校友统计出炉
  19. 《思维力:高效的系统思维》读书笔记05 - 快速提升你的沟通表达能力
  20. MySQL NDB Cluster部署方案与实践

热门文章

  1. 新华全媒+|探秘北迁象群的“家”和“家人们”
  2. 用计算机亩换算成平方,亩换算(平方米换算亩计算器)
  3. 服务器拒绝mac访问共享文件,Mac怎样访问局域网共享文件
  4. linux c 操作word文档,C and Word and linux 总结.doc
  5. Linux 中的 fold 命令详解及C/C++代码实现
  6. Unity 使用Mirror制作联机游戏
  7. 模电——基本运算放大器原理
  8. 管家婆辉煌Ⅱ TOP 突破系统每年只能做11次12次月结存限制
  9. 小树也能读懂的零点定理弱形式
  10. 基于51单片机DTH11温湿度测量仪protues仿真设计_LCD显示