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

解决的问题:

这次使用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的定时器将被重设,这将导致屏幕亮更长的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吃屎是一种什么样的体验?

全世界只有3.14 % 的人关注了爆炸吧知识没有什么能够阻挡人类对美食的向往这两天,有代表建议“加强小龙虾等入侵物种生态防控”的话题上了热搜榜,不曾想底下的评论竟然都在讨论“吃”。把入侵物种吃到濒危这个梗说多了,有时候还真担心刚懂事的…

Codeforces Round #192 (Div. 2)

A: 题意: 给出一个矩阵表示蛋糕,矩阵中有毒草莓。我们每次可以选择一行或者一列来吃蛋糕,要保证改行该列不含有毒草莓。问我们能吃到的最多的小蛋糕快 思路: 直接枚举每一行,每一列然后吃,模拟就行。 #incl…

*[hackerrank]Girlfriend Necklace

https://www.hackerrank.com/contests/w8/challenges/gneck 有点意思。是DP&#xff0c;最优解包含最优子问题。F(X)F(X-1)F(X-3)。因为F(X-1)右边放个“R”和F(X-3)右边放"RRB"是左右可以互推的&#xff0c;包含全了最右是R和B的两种情况。 #include <iostream&g…

sql limit不接具体数字_这21个写SQL的好习惯,你要养成呀

前言每一个好习惯都是一笔财富&#xff0c;本文分SQL后悔药&#xff0c; SQL性能优化&#xff0c;SQL规范优雅三个方向&#xff0c;分享写SQL的21个好习惯&#xff0c;谢谢阅读&#xff0c;加油哈~公众号&#xff1a;「捡田螺的小男孩」1. 写完SQL先explain查看执行计划&#x…

巅峰对决!Spring Boot VS .NET 6

Spring Boot 和 ASP.NET Core 都是企业中流行的 Web 框架, 对于喜欢 C# 的人会使用 ASP.NET Core, 而对于 Java 或 Kotlin 等基于 JVM 的语言&#xff0c;Spring Boot 是最受欢迎的。这本文中&#xff0c;会对比这两个框架在以下方面有何不同&#xff1a;•控制器•模型绑定和验…

java 生成无重复 随机数

2019独角兽企业重金招聘Python工程师标准>>> 一、实现逻辑 1.需要一个固定的数据集。 2.从数据集中随机去除当前索引的数据&#xff0c;并移除生成。并重复生成多个。 二、编码 import java.util.ArrayList; import java.util.Calendar; import java.util.List; imp…

最诡异航空事件,幽灵航班包括驾驶人员,所有人都在高空中昏睡!而后整机坠毁!...

全世界只有3.14 % 的人关注了爆炸吧知识2005年8月14日&#xff0c;一架塞浦路斯的太阳神航空&#xff08;Helios Airways&#xff09;波音737-300客机&#xff0c;班次ZU-522&#xff08;HCY 522&#xff09;&#xff0c;机身编号5B-DBY&#xff0c;机上载有59名成年人及8名儿童…

c#代码实现GPS数据的有效性校验

用于校验GPS报文指令的有效性 很简单的代码&#xff0c;留存吧 public static bool Verify(string gpsInfo) { if (gpsInfo null || "".Equals(gpsInfo)) return false; char p gpsInfo[0]; char c (cha…

[激励机制]浅谈内部竞争——如何让你的员工玩命干活?

我是标题党&#xff0c;标题是故意气你的&#xff0c;千万表拍我。公元2012年12月12号&#xff0c;Clark 拿出所有积蓄创办了一个公司&#xff0c;招了看上去还不错的5个员工组成了一个小型团队。紧接着&#xff0c;摆在他面前的一个很明显的问题就是——如何让他们玩命干活&am…

Android之TrafficStats实现流量实时监测

---恢复内容开始---TrafficStats类是由Android提供的一个从你的手机开机开始&#xff0c;累计到现在使用的流量总量&#xff0c;或者统计某个或多个进程或应用所使用的流量&#xff0c;当然这个流量包括的Wifi和移动数据网Gprs。这里只针对手机所使用的流量作介绍&#xff0c;至…

mybatis 查询的时间不对_程序员,Mybatis 你踩过坑吗?

点击上方“Java基基”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;源码精品专栏 中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业…

李洪强iOS开发之- 实现简单的弹窗

李洪强iOS开发之- 实现简单的弹窗 实现的效果: 112222222222223333333333333333

数据挖掘模型生命周期管理

为成功地利用预测模型&#xff0c;您需要从开发阶段直至生产环境对模型进行全面管理。模型生命周期管理是由以下阶段组成的高效交替过程&#xff1a; • 确定业务目标 • 访问和管理数据 • 开发模型 • 验证模型 • 部署模型 • 监控模型 确定业务目标 第一步确定所需模型以及…

.NET 编码的基础知识

点击上方蓝字关注我们.NET 编码的一些基本概念和分析简单的类型概念Hex &#xff08;16进制&#xff09;byte 字节 范围是&#xff1a;0~255&#xff0c;二进制下的范围就是00000000~11111111&#xff0c;相当于1字节。byte[] 字节数组bit 比特&#xff0c;只有2种状态&#xf…

Android之android.os.NetworkOnMainThreadException异常

今天用handler.post(Runnable);的时候出现了android.os.NetworkOnMainThreadException Runnable里面使用的访问网络请求&#xff0c;网络请求是不可以放在主线程里面的&#xff0c;所以出现了这个问题 因为我想执行 handler.post(runnable); Runnable runnable new Runnable(…

什么是MVC?MVC框架的优势和特点

目录 一、什么是MVC 二、MVC模式的组成部分和工作原理 1、模型&#xff08;Model&#xff09; 2、视图&#xff08;View&#xff09; 3、控制器&#xff08;Controller&#xff09; 三、MVC模式的工作过程如下&#xff1a; 用户发送请求&#xff0c;请求由控制器处理。 …

每日英语:The First Day On A Job Is Tough Work

Why is the first day on the job often the worst?New employees tend to be greeted with stacks of benefits paperwork, technology hassles and dull presentations about company culture. hassle&#xff1a;激战&#xff0c;争辩&#xff0c;麻烦事    But some c…

docker没有下载完全_会用Docker的人都别装了,这多简单呐

学术又官方的说法Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。没用过的人能看懂这段话&#xf…