Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了设置Android系统永不锁屏永不休眠的方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在进行Android系统开发的时候,有些特定的情况需要设置系统永不锁屏,永不休眠。本篇文章给大家介绍Android 永不锁屏,开机不锁屏删除设置中休眠时间选项,需要的朋友一起学习吧

Android 6.0.1
Create:2016-02-29

1.SetTings 删掉屏幕待机选项

packages/apps/SetTings/res/xml/display_setTings.xml
<!-- Hide screen sleep
<ListPreference
android:key="screen_timeout"
android@R_833_6964@="@String/screen_timeout"
android:sumMary="@String/screen_timeout_sumMary"
android:persistent="false"
android:entries="@array/screen_timeout_entries"
android:entryValues="@array/screen_timeout_values" /> --> 

注释掉这个ListPreference

packages/apps/SetTings/src/com/android/setTings/DisplaySetTings.java

添加if条件,如果没有找到这个preference就不执行相关操作;具体可以参被隐藏的 night_mode

mScreenTimeoutPreference = (ListPreferencE) findPreference(KEY_SCREEN_TIMEOUT);
if (mScreenTimeoutPreference !=null ) {
final long currentTimeout = SetTings.System.getLong(resolver,SCREEN_OFF_TIMEOUT,falLBACK_SCREEN_TIMEOUT_value);
mScreenTimeoutPreference.SETVALue(String.valueOf(currentTimeout));
mScreenTimeoutPreference.setOnPreferencechangelistener(this);
disableUnusableTimeouts(mScreenTimeoutPreferencE);
updatetiR_909_11845@eoutPreferenceDescription(currentTimeout);
}

2.禁止锁屏

frameworks/base/packages/SetTingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">false</bool> 改为 true;即禁止锁屏
frameworks/base/core/res/res/values/config.xml
<Integer name="config_multiuserMaximumUsers">1</Integer> 不允许多用户;即最大用户数为1

分别编译frameworks/base/packages/SetTingsProvider 与 frameworks/base

编译后push 到 system/priv-app/SetTingsProvider/SetTingsProvider.apk system/framework/framework.jar

删去机器中对应的oat目录。重启或恢复出厂设置。第一次开机时,会先出现status bar,launcher要等一会才出来。

之后重启就可以直接进入launcher。机器会认不锁屏。但还是会进入sleep状态。

源码流程:

frameworks/base/packages/SetTingsProvider/src/com/android/providers/setTings/DatabaseHelper.java
if (upgradeVersion == 54)// 版本为54才会设置timeout
......
private void upgradeScreenTimeoutFromNever(sqliteDatabase db) {
// See if the timeout is -1 (for "Never").
cursor c = db.query(TABLE_SYstem,new String[] { "_id","value" },"name=? AND value=?",new String[] { SetTings.System.SCREEN_OFF_TIMEOUT,"-1" },null,null);
sqliteStatement stmt = null;
if (c.getCount() > 0) {
c.close();
try {
stmt = db.compileStatement("INSERT OR replaCE intO system(name,value)"
+ " VALUES(?,?);");
// Set the timeout to 30 minutes in milliseconds
loadSetTing(stmt,SetTings.System.SCREEN_OFF_TIMEOUT,Integer.toString(30 * 60 * 1000));
} finally {
if (stmt != null) stmt.close();
}
} else {
c.close();
}
}
......
if (SystemProperties.getBoolean("ro.lockscreen.disable.default",falsE) == truE) {
loadSetTing(stmt,SetTings.System.LOCKSCREEN_DISABLED,"1");
} else {
loadBooleanSetTing(stmt,R.bool.def_lockscreen_disabled);
}

timeout若是-1,则永不锁屏

读取"ro.lockscreen.disable.default",如果认为true,则设置禁止锁屏;否则从xml中读配置

frameworks/base/packages/SetTingsProvider/res/values/defaults.xml
<Integer name="def_screen_off_timeout">60000</Integer>
<bool name="def_lockscreen_disabled">false</bool>` 

禁止锁屏认为false

以上内容是小编给大家介绍的设置Android系统永不锁屏永不休眠的方法,希望对大家有所帮助。

大佬总结

以上是大佬教程为你收集整理的设置Android系统永不锁屏永不休眠的方法全部内容,希望文章能够帮你解决设置Android系统永不锁屏永不休眠的方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。