`
jiav_net
  • 浏览: 104254 次
文章分类
社区版块
存档分类
最新评论

PowerManager和WakeLock的操作步骤

 
阅读更多

PowerManager和WakeLock的操作步骤

转自:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966611.html

  1. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。
  2. 然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。
  3. 获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。
  4. 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方法里面释放。

分享到:
评论

相关推荐

    Android powermanger wakelock

    PowerManager和WakeLock的操作步骤 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。 然后通过PowerManager的newWakeLock ...

    android WakeLock使用方法代码实例

    Android中提供了一个名为WakeLock的类在android.os.PowerManager.WakeLock中,从名字来看WakeLock是唤醒锁的意思,它可以控制屏幕的背光开关,所以在电源管理类。 WakeLock实例化方法比较简单,因为是系统的远程...

    Android锁屏无法继续定位问题

    private PowerManager.WakeLock wakeLock; @Override public void onCreate() { super.onCreate(); //创建PowerManager对象 pm = (PowerManager) getSystemService(Context.POWER_SERVICE); //保持cpu一直...

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

    在使用一些产品列如微信、QQ之类的,如果有新消息来时,手机屏幕即使在锁屏状态下也会亮起并提示声音,这时用户就...答案就是Android中的WakeLock机制。 首先看看官方的解释: PowerManager:This class gives you co

    保持Android Service在手机休眠后继续运行的方法

    最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。 官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。 wake ...

    Android保持屏幕常亮

    Android保持屏幕常亮,PowerManager.WakeLock的使用 package com.hebaijun.wakelock; import android.app.Activity; import android.os.Bundle; import android.os.PowerManager; public class WakeLockActivity ...

    Android手机保持屏幕高亮方法

    private PowerManager.WakeLock wakeLock = null; 重写父类Activity的两个方法并添加一下逻辑: @Override public void onResume() { super.onResume(); acquireWakeLock(this); } @Override

    Android通过距离传感器控制屏幕熄灭案例代码

    // 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag localWakeLock = this.localPowerManager.newWakeLock(32, "hahaha");// 第一个参数为电源锁级别,第二个是日志tag }...

    java 电源管理类 powermanager

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

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

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

    android接收到蓝牙配对请求时如何点亮屏幕具体实现

    变量申明:private PowerManager.WakeLock mWakeLock; 3. BluetoothEventLoop(){} 构造函数里面添加定义: PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm....

    Powermanager

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

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

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

    二年第一本书做的PowerManager练习

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

    powermanager[n1au410w].exe

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

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

    本文实例讲述了Android保持屏幕常亮唤醒状态的方法。分享给大家供大家参考,具体如下: 第一步: 首先添加权限: 代码如下:”android.permission.WAKE_... WakeLock wakeLock = null; @Override protected void onC

    IBM电池管理软件powermanager

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

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

    本文实例讲述了Android编程实现禁止系统锁屏与...WakeLock lock, unLock; KeyguardManager km; KeyguardLock kl; unLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_

    akelock-revamp:重写https:github.comd4rkenwakelock

    Wakelock使您可以控制Android Power-和WifiManager。 例如,您可以强制PowerManager保持屏幕打开状态或让CPU仍在待机模式下运行,或者确保Wifi连接始终保持完整性能运行。 常问问题 三星Galaxy Note 4怎么了? 在...

Global site tag (gtag.js) - Google Analytics