`

PowerManager防止屏幕自动锁屏

阅读更多
手机长时间不使用后为了省电会自动锁屏,但有时候在玩游戏的时候,我们并不需要这样的“智能”。下面的代码演示了如何防止锁屏,大家可以试一下。
private PowerManager mPowerManager; //电源控制管理器,比如防锁屏
private WakeLock mWakeLock;//唤醒锁?
public void onCreate(Bundle savedInstanceState) {

mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName()); //处理屏幕防止锁屏

}

@Override
    protected void onResume() {
        super.onResume();
         mWakeLock.acquire();  //恢复时解除锁屏
    }

    @Override
    protected void onPause() {
        super.onPause();
        mWakeLock.release();
    }

当然还需要添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />

android的PowerManager和PowerManager.WakeLock
http://java-admin.iteye.com/blog/930100

WakeLock使用方法示例代码
http://www.android123.com.cn/androidkaifa/867.html

另一篇:
PowerManager和WakeLock的操作步骤
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。
然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。
获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。
关于int flags
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:Normal wake locks don't actually turn on the illumination. Instead, they cause the illumination to remain on once it turns on (e.g. from user activity). This flag will force the screen and/or keyboard to turn on immediately, when the WakeLock is acquired. A typical use would be for notifications which are important for the user to see immediately.
ON_AFTER_RELEASE:f this flag is set, the user activity timer will be reset when the WakeLock is released, causing the illumination to remain on a bit longer. This can be used to reduce flicker if you are cycling between wake lock conditions.
权限获取
要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />
你可能还需要
<uses-permission android:name="android.permission.DEVICE_POWER" />
另外WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。
可以在activity的onResume方法里面操作WakeLock,  在onPause方法里面释放。
分享到:
评论

相关推荐

    Android屏幕锁屏弹窗的正确姿势DEMO详解

    最近在做一个关于屏幕锁屏悬浮窗的功能,于是在网上搜索了很多安卓屏幕锁屏的相关资料,鉴于网上的资料比较零碎,所以我在这里进行整理总结。本文将从以下两点对屏幕锁屏进行解析: 1. 如何监听系统屏幕锁屏 2. 如何...

    Android亮屏和熄屏控制实例详解

    顾名思义,PowerManager.java就是管理我们电源方面的功能的,当然也包括我们屏幕的亮和熄灭。没错,我们的应用程序就是通过这个系统服务来实现亮屏和熄屏的功能的。 1. 应用程序获取PowerManager服务, 我们可以这样...

    Android 监听屏幕是否锁屏的实例代码

    2)如果要在屏幕状态发生改变之前就想获取屏幕状态,可以通过反射机制调用PowerManager的isScreenOn方法 。 具体实现,见代码: 直接上代码: 1.定义一个接收广播的类 package com.app.lib; import android.content...

    Android锁屏无法继续定位问题

    //保持cpu一直运行,不管屏幕是否黑屏 wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CPUKeepRunning"); wakeLock.acquire(); } @Override public void onDestroy() { wakeLock.release(); ...

    java 电源管理类 powermanager

    采用JNI技术加C语言 写的java的电源管理类, 可实现关机重启,快速关机重启注销,可直接只用,并非采用简单的命令行关机!

    Android编程实现禁止系统锁屏与解锁亮屏的方法

    通常情况下,不设置屏幕常亮,系统会自动锁屏,锁屏后不能从代码解锁(疑问),所以我的做法是只让系统关闭屏幕,但不锁屏! WakeLock lock, unLock; KeyguardManager km; KeyguardLock kl; unLock = pm....

    Unity调用Android系统PowerManager类功能.zip

    Unity调用Android系统PowerManager类相关的功能(关机、重启、睡眠、唤醒),需要系统签名。

    Powermanager

    我自己写的,一直在用的一个好工具PowerManager. 可以定时关机,也可以立即关闭系统. 避免麻烦的Start-&gt;ShutDown-&gt;XXXX... 绿色软件,无需安装,使用.

    Android实现保持屏幕常亮功能

    笔者所在公司做的APP是股票类的,用户在查看股票报价页面的时候,往往需要开启盯...网上有一种解决方案是使用PowerManager来实现屏幕不锁屏: /** * 打开休眠锁只能保持手机不休眠 * @param context */ @Depreca

    二年第一本书做的PowerManager练习

    二年第一本书做的PowerManager练习 内容很有用

    powermanager[n1au410w].exe

    windows7官方版 ,升级windows10后,以兼容模式运行,

    android禁止锁屏保持常亮(示例代码)

    一般的话设置了播放视频屏幕没有自动。但是在三星上就出了问题。 只好再找找。一般的话设置有两种方法。 如下: 代码如下:1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 2. onResume...

    Android powermanger wakelock

    这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠. PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种:...

    IBM电池管理软件powermanager

    IBM笔记本电池管理软件,XP应用。。。

    15版联想t450电源管理软件win7powermanager[n14u406w]

    15版联想t450电源管理软件win7powermanager[n14u406w],实用于win7系统。

    SuspendDelayMngr:如果任何全屏窗口处于活动状态,则提供防止挂起模式的脚本(通过 PowerManager)

    暂停延迟管理器如果任何全屏窗口处于活动状态,则提供防止挂起模式的脚本(通过 PowerManager) 在 Linux Mint 17 Qiana 上实际和测试

    Android应用程序保持后台唤醒(使用WakeLock实现)

    在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就知道有新消息来临了。但是,一般情况下手机锁屏后,Android系统为了省电以及减少CPU消耗,在一段时间...

    Android点亮屏幕或屏幕解锁和锁定以及其他相关权限实现代码

    1、Android屏幕常亮/点亮 代码如下: //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE...

    Android保持屏幕常亮唤醒状态的方法

    本文实例讲述了Android保持屏幕常亮唤醒状态的方法。分享给大家供大家参考,具体如下: 第一步: 首先添加权限: 代码如下:”android.permission.WAKE_LOCK”&gt; 第二步:代码实现如下: public class ...

    android 休眠和唤醒

    利用PowerManager中 goToSleep和wakeUp方法实现手机强制休眠和唤醒,demo已测试通过

Global site tag (gtag.js) - Google Analytics