您的位置:首页 > 移动开发 > Android开发

android 4.2以上版本永不休眠

2014-04-27 16:26 495 查看
android4.2以上版本比android4.2以前的版本framework层框架部分有了很大的改变,androd4.2以前版本framework层给上的接口函数与android4.2以上版本的接口函数也有了些变化,以前让机器永不休眠的方法用在android4.2以上版本已经不起作用了。现将android4.2以上版本修改永不休眠的方法记录下来。

首先还是要修改defaults.xml文件里def_screen_off_timeout的值。

1. 修改default值,不自动休眠

/frameworks/base/packages/SettingsProvider/res/values/defaults.xml

修改def_screen_off_timeout为-1

2.修改PowerManagerService.java文件getScreenOffTimeoutLocked()函数

修改前:

[html]
view plaincopy





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);
}

修改后:

[html]
view plaincopy





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);

修改后就不会休眠了。可能还有其它方法让其用不休眠,有兴趣的人可以在看看源码找着看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: