PowerManager和WakeLock的操作步骤
转自:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966611.html
- 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()释放(释放是必须的)。
-
WakeLock.acquire(); //唤醒点亮屏幕
//这个期间屏幕将点亮
WakeLock.release(); //恢复屏幕到黑暗
当然Android考虑到安全并不是说开发者有了权限,就可以随意的控制屏幕的背光显示或无,只有通过acquire点亮的背光才能使用release让其关闭背光,如果直接调用release方法关闭屏幕将会产生一个异常。
从Android 2.1 API Level7开始增加了一个判断屏幕是否处于点亮状态可以使用public boolean isScreenOn ()这个方法,代码为
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
关于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方法里面释放。
分享到:
相关推荐
PowerManager和WakeLock的操作步骤 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。 然后通过PowerManager的newWakeLock ...
Android中提供了一个名为WakeLock的类在android.os.PowerManager.WakeLock中,从名字来看WakeLock是唤醒锁的意思,它可以控制屏幕的背光开关,所以在电源管理类。 WakeLock实例化方法比较简单,因为是系统的远程...
private PowerManager.WakeLock wakeLock; @Override public void onCreate() { super.onCreate(); //创建PowerManager对象 pm = (PowerManager) getSystemService(Context.POWER_SERVICE); //保持cpu一直...
在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就...答案就是Android中的WakeLock机制。 首先看看官方的解释: PowerManager:This class gives you co
最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。 官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。 wake ...
Android保持屏幕常亮,PowerManager.WakeLock的使用 package com.hebaijun.wakelock; import android.app.Activity; import android.os.Bundle; import android.os.PowerManager; public class WakeLockActivity ...
private PowerManager.WakeLock wakeLock = null; 重写父类Activity的两个方法并添加一下逻辑: @Override public void onResume() { super.onResume(); acquireWakeLock(this); } @Override
// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag localWakeLock = this.localPowerManager.newWakeLock(32, "hahaha");// 第一个参数为电源锁级别,第二个是日志tag }...
采用JNI技术加C语言 写的java的电源管理类, 可实现关机重启,快速关机重启注销,可直接只用,并非采用简单的命令行关机!
Unity调用Android系统PowerManager类相关的功能(关机、重启、睡眠、唤醒),需要系统签名。
变量申明:private PowerManager.WakeLock mWakeLock; 3. BluetoothEventLoop(){} 构造函数里面添加定义: PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm....
我自己写的,一直在用的一个好工具PowerManager. 可以定时关机,也可以立即关闭系统. 避免麻烦的Start->ShutDown->XXXX... 绿色软件,无需安装,使用.
顾名思义,PowerManager.java就是管理我们电源方面的功能的,当然也包括我们屏幕的亮和熄灭。没错,我们的应用程序就是通过这个系统服务来实现亮屏和熄屏的功能的。 1. 应用程序获取PowerManager服务, 我们可以这样...
二年第一本书做的PowerManager练习 内容很有用
windows7官方版 ,升级windows10后,以兼容模式运行,
本文实例讲述了Android保持屏幕常亮唤醒状态的方法。分享给大家供大家参考,具体如下: 第一步: 首先添加权限: 代码如下:”android.permission.WAKE_... WakeLock wakeLock = null; @Override protected void onC
IBM笔记本电池管理软件,XP应用。。。
本文实例讲述了Android编程实现禁止系统锁屏与...WakeLock lock, unLock; KeyguardManager km; KeyguardLock kl; unLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_
Wakelock使您可以控制Android Power-和WifiManager。 例如,您可以强制PowerManager保持屏幕打开状态或让CPU仍在待机模式下运行,或者确保Wifi连接始终保持完整性能运行。 常问问题 三星Galaxy Note 4怎么了? 在...