设置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:title="@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);
updateTimeoutPreferenceDescription(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, 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, Settings.System.LOCKSCREEN_DISABLED,
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系统永不锁屏永不休眠的方法,希望对大家有所帮助。

(0)

相关推荐

  • 探讨:如何修改Android超时休眠时间

    默认情况下,Android系统在超过N分钟没操作,会自动关屏并进入休眠状态. 实际上,有些项目要求超时不休眠,如果只是针对单个应用程序,我们可以通过电源管理设置状态来实现,而如果要设置所有应用的超时时间,则可以参考以下方法: 方法一.调整代码:Settings.System.putInt(getContentResolver(),android.provider.Settings.System.SCREEN_OFF_TIMEOUT,-1);权限:<uses-permission android:

  • 设置Android设备WIFI在休眠时永不断开的代码实现

    MainActivity如下: package cc.ab; import android.os.Bundle; import android.provider.Settings; import android.app.Activity; /** * Demo描述: * 设置设备在睡眠期间始终保持WLAN开启. * * 参考资料: * 1 http://stackoverflow.com/questions/8652031/how-to-modify-wi-fi-sleep-policy-pro

  • Android编程实现屏幕禁止休眠的方法

    本文实例讲述了Android编程实现屏幕禁止休眠的方法.分享给大家供大家参考,具体如下: 实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位.具体如下: 1.在Manifest.xml文件里面用user-permission声明.代码如下: <uses-permission android:name="android.permission.WAKE_LOCK"> </uses-permissio

  • Android系统永不锁屏永不休眠的方法

    开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠,有两种方式:        一种是添加权限,              一种是代码中设置, 建议使用第一种方式,这样,在安装程序的时候会进行提醒: 第一种方式: 在Manifest.xml文件里面用user-permission声明 名称为:android.permission.WAKE_LOCK 第二种方式: getWindow().setFlags(WindowManager.L

  • Android 手机防止休眠的两种实现方法

    Android 手机防止休眠的两种实现方法 实现这一功能的方法有两种, 一种是在Manifest.xml文件里面声明. 一种是在代码里面修改LayoutParams的标志位. 具体如下: 1.在Manifest.xml文件里面用user-permission声明.代码如下: < uses-permission android:name="android.permission.WAKE_LOCK" > < /uses-permission > 这种方法,在安装ap

  • 设置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=&

  • Android如何实现锁屏状态下弹窗

    前言 想在锁屏上面实现弹窗,第一个想法就是利用 WindowManager 设置 Window 的 Flag,通过设置 Flag 的显示优先级来让窗口显示在锁屏的上面. 接下来就是试验可能相关的 Window Type 属性,验证该方案是否可行. 在尝试各个 Window Type 属性之前需要明确各个 Type 所需要的权限,下面是 com.android.internal.policy.impl.PhoneWindowManager.checkAddPermission 的源码: publi

  • Android 仿小米锁屏实现九宫格解锁功能(无需图片资源)

    最近公司要求做个九宫格解锁,本人用的是小米手机,看着他那个设置锁屏九宫格很好看,就做了该组件,不使用图片资源,纯代码实现. 尊重每个辛苦的博主,在http://blog.csdn.net/mu399/article/details/38734449的基础上进行修改 效果图: 关键代码类: MathUtil.Java /** * @author SoBan * @create 2016/12/5 15:52. */ public class MathUtil { public static dou

  • Android 监听锁屏、解锁、开屏 功能代码

    1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.PowerManager; /** * Created by ${zyj} on 2016/6

  • android实现一键锁屏和一键卸载的方法实例

    前言 本文主要介绍了关于android实现一键锁屏和一键卸载的相关内容,分享出来供大家参考学习,这两个功能也是大家在开发中会遇到的两个需求,下面话不多说了,来一起看看详细的介绍吧. 一.设备管理器操作步骤 1.创建类DeviceAdminReceiver的子类 如:com.itheima62.lockscreen.DeviceAdminSample 2.在清单文件中配置广播接收者 <receiver android:name="com.itheima62.lockscreen.Device

  • Android设置默认锁屏壁纸接口的方法

    本文实例为大家分享了Android设置默认锁屏壁纸接口的具体代码,供大家参考,具体内容如下 完成自定义service后,接下来就是具体实现接口 1.在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl中定义接口 boolean setLockScreenWallpaper(String uri); 2.在frameworks/base/core/java/android/app/customized/C

  • Android实现原生锁屏页面音乐控制

    Android5.0 提出了全新的MediaSession概念用于播放器与控制器之间进行交互,它取代之前的RemoteControlClient,并提供了更为灵活的客户端受控端模型. 但是MediaSession框架只能在安卓5系统上使用,如何兼容低版本呢? Google在support-v4(21以上版本)中也提供了MediaSessionCompact兼容包.通过它可以告诉Android系统与其他的应用,自己正在播放的内容是什么以及自己支持哪些类型的播放控制. 在播放音乐时,通过MediaS

  • Android View自定义锁屏图案

    前言 Android 自定义 View 技能是成为高级工程师所必备的,笔者觉得自定义 View 没有什么捷径可走,唯有经常练习才能解决产品需求.笔者也好久没有写自定义 View 了,赶紧写个控件找点感觉回来. 本文实现的是一个 锁屏图案的自定义控件.效果图如下: Github 地址:AndroidSample LockView 介绍 自定义属性: 引用方式: (1) 在布局文件中引入 <com.xing.androidsample.view.LockView android:id="@+i

  • vue页面锁屏的完美解决方法记录

    目录 vue实现页面锁屏完美解决 1.禁止浏览器返回按钮 2.书写锁屏页面和相关路由 3.在router.beforeEach()路由首首位加上以下代码 4.实现退出锁屏重新登录 总结 vue实现页面锁屏完美解决 最新写项目 客户要求写一个锁屏功能.静下心来,慢慢看 ,相信你会有收获的. 功能点 1.禁止浏览器返回按钮. 2.手动输入路由会强制跳到锁屏页面. 3.必须输入正确密码或者重新登录该系统. 思路:锁屏的思路从 登录开始在登录的时候 拿到密码 使用md5对密码加密, 然后存到vuex或者

随机推荐