android4.2系统增永不休眠同一时候隐藏休眠选项

1. android\frameworks\base\packages\SettingsProvider\res\values\defaults.xml中设置def_screen_off_timeout为-1,

<integername="def_screen_off_timeout">-1</integer>

2. android\packages\apps\Settings\res\values\arrays.xml文件添加两项。标红选项。

<!--Display settings.  The delay ininactivity before the screen is turned off. These are shown ain a list dialog.-->

<string-arrayname="screen_timeout_entries">

<item>15 seconds</item>

<item>30 seconds</item>

<item>1 minute</item>

<item>2 minutes</item>

<item>10 minutes</item>

<item>30 minutes</item>

  <item>never</item>

</string-array>

<!-- Do not translate. -->

<string-array  name="screen_timeout_values"translatable="false">

<!-- Do not translate. -->

<item>15000</item>

<!-- Do not translate. -->

<item>30000</item>

<!-- Do not translate. -->

<item>60000</item>

<!-- Do not translate. -->

<item>120000</item>

<!-- Do not translate. -->

<item>600000</item>

<!-- Do not translate. -->

<item>1800000</item>

<item>-1</item>

</string-array>

3. android\packages\apps\Settings\res\values-zh-rCN中添加永不休眠相应的中文

<string-arrayname="screen_timeout_entries">

<itemmsgid="3342301044271143016">"15 秒"</item>

<itemmsgid="8881760709354815449">"30 秒"</item>

<item msgid="7589406073232279088">"1分钟"</item>

<itemmsgid="7001195990902244174">"2 分钟"</item>

<itemmsgid="7489864775127957179">"5 分钟"</item>

<itemmsgid="2314124409517439288">"10 分钟"</item>

<itemmsgid="6864027152847611413">"30 分钟"</item>

<item msgid="9989898989898989898">"永不休眠"</item>

</string-array>

4./services/java/com/android/server/power/PowerManagerService.java

private int getScreenOffTimeoutLocked() {

  int DonotSleeptimeout;

int timeout =mScreenOffTimeoutSetting;

if(isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {

timeout = Math.min(timeout,mMaximumScreenOffTimeoutFromDeviceAdmin);

if(mUserActivityTimeoutOverrideFromWindowManager >= 0) {

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

}

DonotSleeptimeout = mScreenOffTimeoutSetting;

if(DonotSleeptimeout  < 0)

{

DonotSleeptimeout= mMaximumScreenOffTimeoutFromDeviceAdmin ;

returnMath.max(DonotSleeptimeout, mMaximumScreenOffTimeoutFromDeviceAdmin);

}

return Math.max(timeout,MINIMUM_SCREEN_OFF_TIMEOUT);

}

privatevoid updateUserActivitySummaryLocked(long now, int dirty) {

// Update the status of the useractivity timeout timer.

if ((dirty & (DIRTY_USER_ACTIVITY |DIRTY_WAKEFULNESS | DIRTY_SETTINGS)) != 0) {

mHandler.removeMessages(MSG_USER_ACTIVITY_TIMEOUT);

long nextTimeout = 0;

if (mWakefulness !=WAKEFULNESS_ASLEEP) {

final int screenOffTimeout =getScreenOffTimeoutLocked();

final int screenDimDuration =getScreenDimDurationLocked(screenOffTimeout);

mUserActivitySummary = 0;

if (mLastUserActivityTime >=mLastWakeTime) {

nextTimeout =mLastUserActivityTime

+ screenOffTimeout- screenDimDuration;

if (now < nextTimeout) {

mUserActivitySummary |=USER_ACTIVITY_SCREEN_BRIGHT;

} else {

nextTimeout =mLastUserActivityTime + screenOffTimeout;

if (now <nextTimeout) {

mUserActivitySummary|= USER_ACTIVITY_SCREEN_DIM;

}

}

}

if (mUserActivitySummary == 0

&&mLastUserActivityTimeNoChangeLights >= mLastWakeTime) {

nextTimeout =mLastUserActivityTimeNoChangeLights + screenOffTimeout;

if (now < nextTimeout

&&mDisplayPowerRequest.screenState

!=DisplayPowerRequest.SCREEN_STATE_OFF) {

mUserActivitySummary =mDisplayPowerRequest.screenState

==DisplayPowerRequest.SCREEN_STATE_BRIGHT ?

USER_ACTIVITY_SCREEN_BRIGHT : USER_ACTIVITY_SCREEN_DIM;

}

}

if (mUserActivitySummary != 0&&mScreenOffTimeoutSetting > 0) {

Message msg =mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT);

msg.setAsynchronous(true);

mHandler.sendMessageAtTime(msg,nextTimeout);

}

} else {

mUserActivitySummary = 0;

}

if (DEBUG_SPEW) {

Slog.d(TAG,"updateUserActivitySummaryLocked: mWakefulness="

+wakefulnessToString(mWakefulness)

+ ",mUserActivitySummary=0x" + Integer.toHexString(mUserActivitySummary)

+ ",nextTimeout=" + TimeUtils.formatUptime(nextTimeout));

}

}

}

5. /android/packages/apps/Settings/src/com/android/settings/ DisplaySettings.java

privatevoid updateTimeoutPreferenceDescription(long currentTimeout) {

ListPreference preference =mScreenTimeoutPreference;

String summary;

if (currentTimeout < -1) {

// Unsupported value

summary = "";

} else {

final CharSequence[] entries =preference.getEntries();

final CharSequence[] values =preference.getEntryValues();

if (entries == null ||entries.length == 0) {

summary = "";

} else {

int best = 0;

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

long timeout =Long.parseLong(values[i].toString());

if (currentTimeout >=timeout) {

best = i;

}

}

summary = preference.getContext().getString(R.string.screen_timeout_summary,

entries[best]);

if(currentTimeout < 0)summary =entries[best].toString();

}

}

preference.setSummary(summary);

}

onCreate方法中隐藏休眠选项:

mScreenTimeoutPreference= (ListPreference) findPreference(KEY_SCREEN_TIMEOUT);

final long currentTimeout =Settings.System.getLong(resolver, SCREEN_OFF_TIMEOUT,

FALLBACK_SCREEN_TIMEOUT_VALUE);

mScreenTimeoutPreference.setValue(String.valueOf(currentTimeout));

mScreenTimeoutPreference.setOnPreferenceChangeListener(this);

disableUnusableTimeouts(mScreenTimeoutPreference);

updateTimeoutPreferenceDescription(currentTimeout);

//hide sleep item

getPreferenceScreen().removePreference(mScreenTimeoutPreference);

Android设置系统开机自己主动永不休眠的更多相关文章

  1. android设置系统默认开机时间

    1.设置RTC时间,该时间是如果RCT时钟断电以后使用的默认时间 Android L之前: \alps\mediatek\custom\[project]\preloader\ inc\cust_rt ...

  2. android设置系统横屏方案

    效果如下: 实现方案: 1.ChangeOrientationService.java /** * @描述 强制旋转屏幕服务 * @作者 tll * @时间 2018/1/5 */ public cl ...

  3. android设置系统模式

    android 静音与振动1,设置静音和振动静音和振动都属于来电后的动作.所以在设置静音和振动时都只是设置一些标识,并往数据库写入相应标识. 文件:packages/apps/settings/src ...

  4. android 设置系统屏幕亮度

    /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为 ...

  5. I.MX6 Android 永不休眠

    /************************************************************************* * I.MX6 Android 永不休眠 * 说明 ...

  6. [转载]Android系统开机画面的实现

    Android系统开机画面分为下面三个阶段: 1.开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显 示出一 个小企 ...

  7. Android系统开机启动流程及init进程浅析

    Android系统启动概述 Android系统开机流程基于Linux系统,总体可分为三个阶段: Boot Loader引导程序启动Linux内核启动Android系统启动,Launcher/app启动 ...

  8. Android添加永不休眠选项

    很多朋友在使用TQ210做项目的时候都需要屏幕保持长亮,本文介绍如何修改TQ210 android源码,使系统可以永不休眠,代码如下: 1.添加英文选项 修改packages/apps/Setting ...

  9. Android 通过应用程序来设置系统的日期和时间中的

    Android 通过应用程序来设置系统的日期和时间中的 android 2.3 android 4.0 测试可行,刚需ROOT权限. import java.io.DataOutputStream; ...

随机推荐

  1. Makefile学习(二)----生成静态库文件

    Lunix下编译静态库文件: .o后缀文件:编译生成的中间代码文件: .a后缀文件:静态库文件,编译的时候会合到可执行程序中,文件比较大: .so后缀文件:动态库文件,只是一个指向,不会合到可执行程序 ...

  2. python中join()函数讲解

    本文简述的是string.join(words[, sep]),它的功能是把字符串或者列表,元组等的元素给连接起来,返回一个字符串,和split()函数与正好相反,看下面的代码理解. a=[" ...

  3. hdu 1907 尼姆博弈

    John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  4. BZOJ 4516 [Sdoi2016]生成魔咒 ——后缀自动机

    本质不同的字串,考虑SA的做法,比较弱,貌似不会. 好吧,只好用SAM了,由于后缀自动机的状态最简的性质, 所有不同的字串就是∑l[i]-l[fa[i]], 然后后缀自动机是可以在线的,然后维护一下就 ...

  5. spring之scope作用域

    spring中,bean的作用域有五种类型:默认是单例模式,         singleton         prototype         request         session   ...

  6. spring之注入类型

    spring有三种注入类型: set注入: 构造注入: 接口注入: 一.set注入(引用spring官方文档中的例子)(用的最多) 1.首先在代码中我们需要编写成员变量的set方法,如下所示,一般情况 ...

  7. java解决前后台跨域问题

    这篇文章主要介绍了使用Cors实现JavaWeb跨域请求问题的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 之前用jsonp 解决跨域问题,现在用CORS实现跨域请求解决java 跨域问题: ...

  8. P1133 教主的花园 (动态规划)

    题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值. 教主最喜欢 3种树,这3种 ...

  9. Linux(6):定时任务

    定时任务 定时任务的说明和分类 # 定时任务分类: 1. crond(crontab) 定时任务软件(软件包 cronie) 2. atd 运行一次 3. anacron 非7*24小时运行的服务器 ...

  10. 解决centos7中ens33中不显示IP等问题

    在虚拟机中安装centos7,输入ifconfig显示command not found.在sbin目录中发现没有ifconfig文件,这是因为centos7已经不使用 ifconfig命令了,已经用 ...