Android之电源管理 PowerManager解决远程拍照手机黑屏问题

举报
chenyu 发表于 2021/07/27 01:06:36 2021/07/27
【摘要】 解决的问题: 这次使用PowerManager是因为我们后台远程拍照的时候,不支持手机黑屏情况拍照,如果手机黑屏,然后用PowerManager进行临时运行CPU 功能介绍: PowerManager这个类主要是用来控制电源状态的. 通过使用该类提供的api可以控制电池的待机时间,一般情况下不要使用。如果确实需要使用,那么尽可能的使用最低级别的WakeLocks...

解决的问题:

这次使用PowerManager是因为我们后台远程拍照的时候,不支持手机黑屏情况拍照,如果手机黑屏,然后用PowerManager进行临时运行CPU

功能介绍:

PowerManager这个类主要是用来控制电源状态的. 通过使用该类提供的api可以控制电池的待机时间,一般情况下不要使用。如果确实需要使用,那么尽可能的使用最低级别的WakeLocks锁。并且确保使用完后释放它。你可以通过context.getSystemService(Context.POWER_SERVICE)的方式获得PowerManager的实例。在PowerManager中,最主要的newWakeLock方法,如下:

    public WakeLock newWakeLock(int flags, String tag)
    {
        return new WakeLock(flags, tag);
    }
    这个方法将创建WakeLock对象,通过调用此对象的方法你就可以方便的去控制电源的状态。方法如下:
    
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
    wl.acquire();
      屏幕将停留在设定的状态,一般为亮、暗状态
    wl.release();
      释放掉正在运行的cpu或关闭屏幕。

 

下面定义的flag是在newWakeLock方法中要接收的参数,通过该flag,你可以定义系统的电源的展示效果。比如:
 *                                               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
 
  这些flag是相互排斥的,一次只能定义一个。

 

如果你持有PARTIAL_WAKE_LOCK锁,不论任何定时器甚至是按下电源按钮,cpu都将继续运行,无法进入休眠状态。除非你释放掉它。
其他锁的话,虽然cpu也在运行,但是当用户按下电源按钮时,设备将立刻进入休眠状态。

 

 正常情况下wakelocks实际上是没有被打开的,当需要时,它将通过特定的flag启动屏幕和键盘。 比如在应用中,涉及到向用户发送消息时,需要让用户立刻看到。此时会点亮屏幕。当WakeLock锁被释放的时候,activity的定时器将被重设,这将导致屏幕亮更长的时间。

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/52287911

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。