Android:PowerManager类 电源管理

PowerManager类用于对设备电源状态进行管理;PowerManager.WakeLock类用于保持设备常亮;Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。

使用Activity的生命周期,以调用保持屏幕常亮和释放屏幕常亮动作。

    /**
     * <功能描述> 保持屏幕常亮
      *
     * @return void [返回类型说明]
     */
    private void keepScreenWake() {
        // 获取WakeLock锁,保持屏幕常亮
        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mPowerManager.wakeUp(SystemClock.uptimeMillis());
        mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, this
                .getClass().getCanonicalName());
        mWakeLock.acquire();
    }

相应的,需要在Activity的onDestory()中释放屏幕常亮操作。

    /**
     * <功能描述> 释放WakeLock
     *
     * @return void [返回类型说明]
     */
    private void releaseWakeLock() {
        if (mWakeLock != null && mWakeLock.isHeld()) {
            mWakeLock.release();
            mWakeLock = null;
        }
    }

关于各种Flag的说明,这些Flag主要对CPU、屏幕和键盘造成影响:

PARTIAL_WAKE_LOCK:保持CPU运转,屏幕和键盘灯有可能是关闭的;

SCREEN_DIM_WAKE_LOCK:保持CPU运转,运行保持屏幕显示但有可能是灰色的,运行关闭键盘灯;

SCREEN_BRIGHT_WAKE_LOCK:保持CPU运转,运行保持屏幕高亮显示,运行关闭键盘灯;

FULL_WAKE_LOCK:保持CPU运转,保持屏幕高亮显示,键盘灯也保持高亮;

对上述电源管理的设置,需要获取系统的相关权限:

<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
时间: 2024-10-05 22:40:42

Android:PowerManager类 电源管理的相关文章

android wake lock 电源管理简单学习

需要配置清单文件:<uses-permission android:name="android.permission.WAKE_LOCK" /> 也可以参考我之前写的这篇文章: http://blog.csdn.net/aikongmeng/article/details/39232017 package com.example.wakeup; import android.annotation.SuppressLint; import android.app.Activi

exynos 4412 电源管理芯片PMIC 的配置及使用方法

/** ****************************************************************************** * @author ? ?Maoxiao Hu * @version ? V1.0.0 * @date ? ? ? Feb-2015 ****************************************************************************** * < COPYRIGHT 2015 IS

Android 电源管理 -- wakelock机制

转载地址:http://blog.csdn.net/wh_19910525/article/details/8287202 Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁.如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠. PowerManager.WakeLock 有加锁和解锁两种状态,加锁的方式有两种: 第一种是永久的锁住,这样的锁除非显式的

Android电源管理简介(上)

文章转载自:http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx Android Power Management 总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo) 接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论: 应用层的使用:

Android电源管理-休眠简要分析

工作需要,需要对这一块深入学习.故在此做一点分析记录,存疑解惑. 一.开篇 1.Linux 描述的电源状态 - On(on)                                                 S0 -  Working - Standby (standby)                              S1 -  CPU and RAM are powered but not executed - Suspend to RAM(mem)        

android 电源管理,屏幕锁 ,小米2s点亮屏幕,解锁

============问题描述============ 我现在进行的是,通信方面的项目.但是当小米2s测试  来电   的时候,屏幕点亮了,但是没有屏幕没有解锁,只有解锁之后才会出现来点界面.问了别人,说是要看android这个方面的底层,我不知道有什么好的解决办法没有? 这个是电源管理以及解锁屏幕的代码: //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); WakeLock mW

Android电源管理简介(下)

文章转载自:http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx Kernel层 其主要代码在下列位置: drivers/android/power.c 其对Kernel提供的接口函数有 EXPORT_SYMBOL(android_init_suspend_lock); //初始化Suspend lock,在使用前必须做初始化 EXPORT_SYMBOL(android_uninit_suspend_lock); //释放

(原创)android PowerManager分析(非常详细)

概述 一直以来,电源管理是电子产品设计中非常重要的环节,也是任何电子设备中最为重要的系统模块之一,优秀的电源管理方案,能够提供持久的续航能力,良好的用户体验,更能提升电子产品的竞争力. 移动设备的电量主要由两种元件消耗:CPU和显示屏,因此设法降低这两种元件的耗电量就是电源管理的关键,为移动设备设计的CPU大多有两种工作频率,为了省电,大部分时间内cpu都工作在降低频率下,只有进行密集计算时,如视频解码才会切换到高频状态,而显示屏省电的方法是尽量减少亮屏时间,但是显示屏的开关和应用有很大的关系,

linux驱动程序之电源管理之标准linux休眠与唤醒机制分析(一)

1. Based on linux2.6.32,  only for mem(SDR) 2. 有兴趣请先参考阅读: 电源管理方案APM和ACPI比较.doc Linux系统的休眠与唤醒简介.doc 3. 本文先研究标准linux的休眠与唤醒,android对这部分的增改在另一篇文章中讨论 4. 基于手上的一个项目来讨论,这里只讨论共性的地方 虽然linux支持三种省电模式:standby.suspend to ram.suspend to disk,但是在使用电池供电的手持设备上,几乎所有的方案