AndroidQ增加屏幕永不超时

由于本比较菜,源码的理解不到位,无法精准对症下药,找了三种方案一个一个试把。

第一个方案

1:先修改res/values/arrays.xml
该文件中保存的是数组资源,哪种方案都是需要改的。
30 minutes
//增加改选项,为页面上看的到的数组选项
Never

1800000
//增加选项2147483647为int最大值
2147483647
2:修改 src/com/android/settings/display/TimeoutListPreference.java

最后修改src/com/android/settings/display/TimeoutPreferenceController.java

第二种方法

1:packages/apps/Settings/res/values/arrays.xml
30 minutes
//下面为新增
Never

1800000

-1 //如果-1编译会报错则看另一种方案
2:然后在Settings.java文件中修改设置的休眠时间

//putInt最终调用的是putIntForUser
public static boolean putInt(ContentResolver cr, String name, int value) {
return putIntForUser(cr, name, value, cr.getUserId());
}

//putIntForUser中根据传入的name和value特殊值-1进行修改设置
/** @hide */
@UnsupportedAppUsage
public static boolean putIntForUser(ContentResolver cr, String name, int value,int userHandle) {
///ADD START
if(name.equals(SCREEN_OFF_TIMEOUT))
{
//-1说明是我们在设置中添加的永不休眠的值
if(value==-1)
{
//
Log.d(“Settings”,“change screen timeout for:”+Integer.toString(Integer.MAX_VALUE-1000));
return putStringForUser(cr, name, Integer.toString(Integer.MAX_VALUE-1000), userHandle);
}
}
///ADD END
return putStringForUser(cr, name, Integer.toString(value), userHandle);
}

另一种方案Android8的

1:packages/apps/Settings/res/values/arrays.xml

30 minutes

never

1800000

2147483647

2:packages/apps/Settings/src/com/android/settings/display/TimeoutPreferenceController.java

@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
try {
long value = Long.parseLong((String) newValue); //int修改成long
Settings.System.putLong(mContext.getContentResolver(), SCREEN_OFF_TIMEOUT, value);
updateTimeoutPreferenceDescription((TimeoutListPreference) preference, value);
} catch (NumberFormatException e) {
Log.e(TAG, “could not persist screen timeout setting”, e);
}
return true;
}

private void updateTimeoutPreferenceDescription(TimeoutListPreference preference,
long currentTimeout) {
final CharSequence[] entries = preference.getEntries();
final CharSequence[] values = preference.getEntryValues();
final String summary;
if (preference.isDisabledByAdmin()) {
summary = mContext.getString(com.android.settings.R.string.disabled_by_policy_title);
} else {
final CharSequence timeoutDescription = getTimeoutDescription(
currentTimeout, entries, values);
// add code start
//if( currentTimeoutjava.lang.Integer.MAX_VALUE){
// summary = entries[best].toString();
// }
if(currentTimeout2147483647){
summary=timeoutDescription.toString();
}else{ //add code
summary = timeoutDescription == null
? “”
: mContext.getString(R.string.screen_timeout_summary, timeoutDescription);
}//add code
}
preference.setSummary(summary);
}

根据数据库设置永不灭屏

本小白实习时搞过小段时间的java后端,对操作数据库的方式比较容易理解和认可
1:frameworks/base/packages/SettingsProvider/res/values/defaults.xml

true

  • 1800000
  • 0
    -1
    false
    false

2:frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
private int getScreenOffTimeoutLocked(int sleepTimeout) {
int timeout = mScreenOffTimeoutSetting;

  •    if(timeout == 0){
    
  •       //rk3288 7.1比较特殊,这是是timeout为0代表不灭屏,一般android此值为-1,具体为多少需要查看Setting的DisplaySettings.java源码,比如我的是
    

AndroidQ设置永不灭屏相关推荐

  1. RK3588去掉锁屏设置永不灭屏

    1.问题1系统会锁屏修改: 去掉锁屏2.问题2屏幕会灭屏修改: 设置永不灭屏 device/rockchip/rk3588/overlay/frameworks/base/packages/Setti ...

  2. MTK隐藏导航栏,去掉下拉,永不锁屏,永不灭屏

    MTK隐藏导航栏 修改全局属性, 有兴趣的可以全局搜索这个属性,在systemui以及framework中好像都有写 qemu.hw.mainkeys=1 MTK去掉下拉通知 这里去掉添加的view, ...

  3. MTK开发之—开机永不灭屏

    步骤一:修改配置文件 文件路径:/frameworks/base/packages/SettingsProvider/res/values/defaults.xml 说明一下:def_screen_o ...

  4. Ubuntu 20.04 如何设置永不息屏

    右键进入settings 找到power,将Blank Screen 设置为Never

  5. 5行Python 代码就能让你的电脑永不息屏

    前言 Python 不愧是一门优雅.易入门的编程语言.往往用很少量的代码,就能帮助你完成一件很漂亮的事儿. 最开始学习 Python,不需要太过复杂.只要玩儿的开心就行,慢慢培养兴趣,等你上手后,你会 ...

  6. Python3,5行代码让电脑永不息屏。

    5行代码禁止电脑息屏 1.引言 2.电脑永不息屏的两种方法 2.1 电脑手动方式 2.2 代码方式 2.2.1 安装 2.2.2 代码实战 1.引言 小屌丝:鱼哥,按照公司规定,我的电脑锁屏时间是5分 ...

  7. 5 行 Python 代码就能让你的电脑永不息屏,这波必须装到...

    前言 首先,必须得承认Python 是一门优雅.易入门的编程语言.往往用很少量的代码,就能帮助你完成一件很漂亮的事儿.这也是我 使用python多年的心里话.比起那些难.麻烦的的软件,python圆了 ...

  8. 5行Python代码就能让你的电脑 “永不息屏”?

    前言 Python不亏是一门 优雅 . 易入门 的编程语言.往往用很少量的代码,就能帮助你完成一件很漂亮的事儿. 最开始学习Python,不需要太过复杂.只要玩儿的开心就行,慢慢培养兴趣,等你上手后, ...

  9. Python:让我教你如何让电脑永不息屏

    咳咳,也许有些朋友看到这篇文章,会觉得很奇怪 电脑永不息屏,这不是很简单吗,还要你发文章来教? 虽然我们都知道可以直接设置一下,但是如果我们用python,又是怎么解决的呢 电脑手动方式 一般我们让电 ...

最新文章

  1. 如何删除被锁定的文件(一)他山工具篇 WhoLockMe?
  2. 命令别名的设置alias,unalias
  3. 教你用 buildroot 构建根文件系统
  4. SAP 物料主数据屏幕增强
  5. jquery实现抽奖系统
  6. python编程头文件_python头文件怎么写
  7. 【MyEclips】“Could not create the view: An unexpected exception was thrown”错误解决
  8. jquery常见操作分享
  9. 使用ML.NET模型生成器来完成图片性别识别
  10. 快速学习使用springmvc、strust2、strust1以及它们的对比
  11. Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案...
  12. 公有云私有云的区别_私有云 vs. 公有云:谁更安全?
  13. WinForm高级控件实例--职员信息登记
  14. 解决 ImportError: No module named ‘pip._internal‘问题
  15. html代码编辑器jason,JSON 编辑器实现代码
  16. Paraview源码解析8: vtkPVGlyphFilter类
  17. 第十二章:如何制定里程碑
  18. SEO究竟是什么?SEO的相关基础概念介绍
  19. 强烈质疑第二届Android应用开发中国大学生挑战赛
  20. 测量三相永磁同步电机的交轴直轴电感

热门文章

  1. 浙江一女子被集中隔离,到达酒店乐开花:竟是千岛湖高级度假酒店
  2. iis php网站500错误原因_IIS 配置PHP环境HTTP 500错误处理方法
  3. RabbitMq 主题模式(Topic)
  4. JS 中 valueOf() 方法的详解
  5. 高楼扔鸡蛋——动态规划问题
  6. php 箭头符号怎么打开,php箭头的用法是什么?
  7. 银行测试核心项目之测试阶段分享
  8. kindeditor富文本编辑器初步使用教程
  9. php fread 超时时间,fread的超时时间
  10. Oralce简介(一)