android防止程序休眠,android 设置 永不休眠
如果想第一次烧录系统开机就是永不休眠。这个需要修改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 设置 永不休眠相关推荐
- ACR1311U-N2蓝牙NFC读卡器|读写器如何设置永不休眠方法
ACR1311U-N2蓝牙NFC读卡器|读写器是一款支持13.56MHZ,支持ISO14443A与ISO18092协议的高频无线蓝牙刷卡设备. 本文将重点介绍ACR1311U-N2蓝牙NFC读卡器|读 ...
- Android应用程序文件结构,Android项目文件及应用程序—目录结构详解
1. src目录:是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中.如建立EditView工程,ADT根据用户在工程向导中的"Create Acti ...
- android获取程序名称,Android获取应用程序名称(ApplicationName)示例
MainActivity如下: 代码如下: package cn.testapplicationname; import android.os.Bundle; import android.widge ...
- PhoneGap对比html5写android应用程序【android进化三十八】
什么是PhoneGap,其实就是在手机中可以写html代码的插件,下面一段话来源网摘"PhoneGap是一个开放源代码的,跨平台的构建移动应用程序的框架.在PhoneGap中,完全通过HTM ...
- android 网络程序下载,Android之网络文件下载
环境搭建: 本地服务器(下载wamp[Windows, Apache, MySQL, PHP ],安装即可,然后将网页或文件放进 www directory) 虚拟机(访问本地服务器的ip:10.0. ...
- android应用程序耗电,Android的十大耗电量应用程序,在软件中排名第一
腾讯数字新闻(编译: 郑双燕)如今,智能手机变得越来越流行,有许多使用户"想要"的应用程序,一些游戏令人上瘾,一些工具在我们的生活中起着非常重要的作用. 但是,尽管这些应用程序对我 ...
- android拍照程序崩溃,android
我是android开发的新手. 我们使用flutter开发我们的应用程序. 最近我们发现有一个错误. 当我们安装该应用程序后,并第一次拍照,该应用程序将崩溃. 这是日志 W/libEGL (14538 ...
- android登录程序代码,android 应用软件注册与自动登录代码
琢磨了很久 实现系统第一次启动显示欢迎及快速注册界面,注册成功后下次运行实现自动登录. 系统启动后首先进入系统主界面,读取用户名和密码,如果为空则直接跳转到快速注册界面,否则系统正常运行. 快速注册界 ...
- android查看程序缓存文件,Android App的文件缓存目录
Android app的文件缓存目录可以是app内置私有的目录,当然也可以选择外置sdcard目录 内置私有目录 /data/data/[packagename]/files 文件缓存目录,一般存小的 ...
- android应用 程序结构,Android应用结构
不同的应用对于界面结构的需求是不同的.例如: 像计算器和相机应用,构建在一个主要的活动 (activity) 上,主要是这个单一的活动处理各种操作 像拨号应用,主要的是在几个不同的活动中切换,没有很深 ...
最新文章
- 面试官不会告诉你的16问 Java基础面试题
- Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和
- PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM
- 018.Zabbix维护时间和模板导入
- 十、Spring的@Profile注解
- IOS程序中打开自己的程序,测试机器中是否装了自己的程序(openURL:,canOpenURL:)
- 华为服务器gpu卡型号,gpu服务器与配置
- tomcat 内存调整
- python类的构造方法名称_Python的面向对象、Class 概念与使用
- 如何使用 Java8 实现观察者模式?(上)
- python doc转pdf
- 海康录制视频文件无法播放以及FFmpeg最新版下载
- java 之DelayQueue实际运用示例
- go 学习笔记之10 分钟简要理解 go 语言闭包技术
- 分享一个特别好用的站长在线工具箱
- 期权、期货和权证比较
- C++单元测试框架Gtest的配置与使用过程
- 重磅!2022国家杰青,硕博校友统计出炉
- 《思维力:高效的系统思维》读书笔记05 - 快速提升你的沟通表达能力
- MySQL NDB Cluster部署方案与实践
热门文章
- 新华全媒+|探秘北迁象群的“家”和“家人们”
- 用计算机亩换算成平方,亩换算(平方米换算亩计算器)
- 服务器拒绝mac访问共享文件,Mac怎样访问局域网共享文件
- linux c 操作word文档,C and Word and linux 总结.doc
- Linux 中的 fold 命令详解及C/C++代码实现
- Unity 使用Mirror制作联机游戏
- 模电——基本运算放大器原理
- 管家婆辉煌Ⅱ TOP 突破系统每年只能做11次12次月结存限制
- 小树也能读懂的零点定理弱形式
- 基于51单片机DTH11温湿度测量仪protues仿真设计_LCD显示