Android:PowerManager类 电源管理

Posted jamesK4W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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" />

 

以上是关于Android:PowerManager类 电源管理的主要内容,如果未能解决你的问题,请参考以下文章

Android 电源管理器唤醒锁

Android各种Manager

Android各种Manager-郭通

Android中五大Manager详解及使用技巧

Android源码笔记--电量

Android源码笔记--电量