zoukankan      html  css  js  c++  java
  • Android PowerManager电源管理(Android N )

    ./frameworks/base/core/java/android/os/PowerManager.java该类提供给Application访问电源相关接口。

    它的内部类WakeLock是定义的唤醒锁类,除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并尽量使用低等级功能,并确保在你不使用它们的时候立即释放PowerManager.WakeLock。

    你可以通过使用Context.getSystemService来获取这个类的实例。
    你会使用到的最主要API就是newWakeLock()。这个方法会实例化一个PowerManager.WakeLock实例,你可以用WakeLock的方法去控制设备的电量状态。

    实际使用十分简单:

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);   
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");   
    wl.acquire();     
    ..screen will stay on during this section..   
    wl.release();  

    下面是该类的四个功能等级,覆盖了对系统电源的所有影响。这些功能都是互斥的,你只能使用它们中某个。

    Flag Value CPU Screen Keyboard
    PARTIAL_WAKE_LOCK On* Off Off
    SCREEN_DIM_WAKE_LOCK On Dim Off
    SCREEN_BRIGHT_WAKE_LOCK  On Bright Off
    FULL_WAKE_LOCK On Bright Bright

    如果你使用的是PARTIAL_WAKE_LOCK的锁,CPU会一直保持运行状态,哪怕屏幕展示时间超时甚至用户手动点击电源按钮锁屏也无法改变CPU运行状态。而在其他三个状态的锁下,CPU虽然会运行,但当用户使用电源按钮时,CPU还是会陷入休眠状态。

    注意:在Android N上上表中3个黄色标记的flag已经弃用。被android.view.WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON所代替。

    方法public boolean isScreenOn()被 isInteractive()替代。当屏幕点亮时发送广播android.content.Intent#ACTION_SCREEN_ON,灭屏时发送android.content.Intent#ACTION_SCREEN_OFF

  • 相关阅读:
    poj 1698 二分图多重匹配
    poj 3207 2-sat
    hdu4932 Miaomiao's Geometry
    hdu4924 Football Manager
    hdu4914 Linear recursive sequence
    hdoj4906 Our happy ending(2014 Multi-University Training Contest 4)
    poj1987 Distance Statistics
    poj3342 Party at Hali-Bula
    C/C++ 调用qsort/sort 对字符数组排序的cmp函数写法
    poj1947 Rebuilding Roads
  • 原文地址:https://www.cnblogs.com/wangym/p/7418779.html
Copyright © 2011-2022 走看看