android app中如何获取电源锁保持屏幕常亮
android 中电源锁有 wakeLock 和 FLAG_KEEP_SCREEN_ON 这两种。
如果你想在你的应用中一进来就使屏幕保持常亮,并且不随系统亮度发生变化(一般应用都是你进去以后不操作它的话,系统自动灭屏时间到就自动灭屏进锁机界面了)。
方式一,使用 FLAG_KEEP_SCREEN_ON:
在进入 app 的时候添加该 flag,退出 app 的时候清除该 flag
方式二, 使用PowerManager.WakeLock
使用这种方式,最好需要将 PowerManager.WakeLock 包装一下
- privatevoid acquireWakeLock() {
- if (wakeLock ==null) {
- Log.d("Acquiring wake lock");
- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());
- wakeLock.acquire();
- }
- }
- privatevoid releaseWakeLock() {
- if (wakeLock !=null&& wakeLock.isHeld()) {
- Log.d("Release wake lock");
- wakeLock.release();
- wakeLock =null;
- }
- }
建议 acquireWakeLock 放在 onCreate 或 onResume 函数中调用,而 releaseWakeLock 则放在 onDestroy 或者 onPause 函数中调用。
还有一种情况,假如应用程序想在进入以后两分钟内无操作自动走系统灭屏流程,那么该如何设置呢?
有了上面的基础就很容易办了。
在 onResume 或者 应用跑起来了以后执行 keepScreenOnAwhile() 函数,利用 Handler 的延时机制来处理清除消息的事件
- public void keepScreenOnAwhile() {
- if (LOG) {
- Log.v(TAG, "keepScreenOnAwhile()");
- }
- mMainHandler.removeMessages(MSG_CLEAR_SCREEN_DELAY);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- mMainHandler.sendEmptyMessageDelayed(MSG_CLEAR_SCREEN_DELAY, DELAY_MSG_SCREEN_SWITCH);
- }
在 Handler 的 case 中添加 MSG_CLEAR_SCREEN_DELAY 对应的处理,即清除消息标志 FLAG_KEEP_SCREEN_ON
- private Handler mMainHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch(msg.what) {
- case MSG_CLEAR_SCREEN_DELAY:
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- break;
- case FULLCHANGE:
- setCameraState(STATE_IDLE);
- break;
- default:
- break;
- }
- };
- };
致此,就可以比较完整的实现上述需求了!
android app中如何获取电源锁保持屏幕常亮相关推荐
- Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)
转自:https://www.jb51.net/article/129633.htm 前言 宽屏适配.禁止截屏和保持屏幕常亮,这三个与屏幕有关的 Android 开发小众知识,说不定什么时候就派上用场 ...
- Android屏幕常亮,其实很简单
此文属于finddreams的原创博客,转载请注明出处:http://blog.csdn.net/finddreams/article/details/78363031 笔者所在公司做的APP是股 ...
- 【Linux】centos桌面版关闭锁屏、屏幕常亮
关闭锁屏和屏幕常亮都是在application → system tools → settings中 关闭锁屏: 屏幕常亮:
- 通过Appium获取Android app中webview
因为要测试Android app中嵌入的web页面,所以需要从native切换到webview.网上查了好多帖子,都用到类似下面代码: //判断是否有 WEBVIEW Set<String> ...
- 没有授权,Android App 也能获取你的权限?!
Play Trick or Treat! 不给权限就捣乱! 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一直以来,无论是 Android 还是 iOS 用户都有一种困扰,即每次下载并 ...
- 2021-08-12 Android APP 保持屏幕常亮和取消屏幕常亮方法
Android APP 保持屏幕常亮和取消屏幕常亮方法 一.有时候进入一个app想让屏幕常亮,这个这个可以使用 FLAG_KEEP_SCREEN_ON 功能,涉及下面函数 Window flag: a ...
- android车机总是自动熄屏,华为Mata20 Pro等Android屏幕常亮/永不熄屏APP:no screen off v 1.16...
华为Mata20 Pro没有永不息屏选项了,但有些专用软件是需要一直运行和查看的,用这软件省去手指隔一段时间点一下屏幕的操作了 虽然刚打开no screen off会弹出的界面说只是针对旧手机有用,提 ...
- 低功耗蓝牙(BLE)在 Android APP 中的应用
低功耗蓝牙(BLE)在 Android APP 中的应用 前言 最近公司接了一个新项目,用户可以把自己的乐器跟Phone或Pad连接起来,当弹奏乐器的时候,会把演奏情况同步反馈到设备上,方便用户练习, ...
- android中获取版本号,Android 开发中如何获取版本号
android 开发中如何获取版本号. 1.获取版本名,版本号: /** * 获取版本号 * * @return * @throws exception */ private int getversi ...
最新文章
- exchange 2010备份及恢复
- Linux系统介绍(二)文件系统结构
- php imagefill,PHP 图像填充 imagefill、imagefilledarc 与 imagefilledrectangle() 函数
- 直播分享|邓文彬:如何在GPU/CPU/移动端高效训练和推断CNN网络
- 计算机开机跳过硬盘检查,电脑开机后如何跳过磁盘检查过程?
- Django(part26)--修改及删除记录
- TypeScript输入参数的默认值一例,以及对应生成的JavaScript代码分析
- php 请求url没有扩展名,apache – 将.php重定向到无扩展名,并在没有.php的情况下创建url...
- java3n 1_1005 继续(3n+1)猜想(JAVA)
- php的c方法,thinkphp的c方法的使用
- VC下几种转换为UNICODE字符串的方法
- 出现( linker command failed with exit code 1)错误总结
- sendRedirect的路径
- h5应用 vue 钉钉_快速上手——钉钉H5微应用开发接入
- Linear Programming and network flows P17 笔记
- ONVIF系列——Onvif协议介绍
- 通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB
- 基于PTPX的功耗分析
- js把数字金额转换成中文大写数字
- 金蝶中间件中标国家金质工程
热门文章
- 如何查找不同芯片keil软件仿真要配置的参数DAMSTM.DLL、-pSTM32F103C8
- 使用pygame.surface.subsurface() 来实现精灵动画
- !pdftex error (font expansion): auto expansion is only possible with scalable fonts
- 即将建设的A15完工后,上海的四环就将水到渠成
- 程序员:开始编程生涯的5个建议
- java.awt.font 宋体,SpringBoot项目集成字体工具类
- SQLServer基础语法大全(基础篇)
- 第04项目:淘淘商城(SpringMvc+Spring+Mybatis) 的个人学习实践总结【第三天】
- 哎呀java摩托车什么年代的,追溯到2000年的Web Java游戏,为何从兴起后一直被谈论到现在!...
- linux的网易云音乐界面不显示图片,网易云音乐Linux 1.2.0有一些问题,附出现libfribidi.so.0的解决...