android 中电源锁有 wakeLock 和  FLAG_KEEP_SCREEN_ON 这两种。

如果你想在你的应用中一进来就使屏幕保持常亮,并且不随系统亮度发生变化(一般应用都是你进去以后不操作它的话,系统自动灭屏时间到就自动灭屏进锁机界面了)。

方式一,使用 FLAG_KEEP_SCREEN_ON:

在进入 app 的时候添加该 flag,退出 app 的时候清除该 flag

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //建议加在 onCreate 或者 onResume 函数中
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //建议加在 onDestroy 或者 onPause 函数中

方式二, 使用PowerManager.WakeLock

使用这种方式,最好需要将 PowerManager.WakeLock 包装一下

[java]  view plain copy
  1. privatevoid acquireWakeLock() {
  2. if (wakeLock ==null) {
  3. Log.d("Acquiring wake lock");
  4. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
  5. wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());
  6. wakeLock.acquire();
  7. }
  8. }
  9. privatevoid releaseWakeLock() {
  10. if (wakeLock !=null&& wakeLock.isHeld()) {
  11. Log.d("Release wake lock");
  12. wakeLock.release();
  13. wakeLock =null;
  14. }
  15. }

建议 acquireWakeLock 放在 onCreate 或 onResume 函数中调用,而 releaseWakeLock 则放在 onDestroy 或者 onPause 函数中调用。

还有一种情况,假如应用程序想在进入以后两分钟内无操作自动走系统灭屏流程,那么该如何设置呢?

有了上面的基础就很容易办了。

在 onResume 或者 应用跑起来了以后执行 keepScreenOnAwhile() 函数,利用 Handler 的延时机制来处理清除消息的事件

[java]  view plain copy
  1. public void keepScreenOnAwhile() {
  2. if (LOG) {
  3. Log.v(TAG, "keepScreenOnAwhile()");
  4. }
  5. mMainHandler.removeMessages(MSG_CLEAR_SCREEN_DELAY);
  6. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  7. mMainHandler.sendEmptyMessageDelayed(MSG_CLEAR_SCREEN_DELAY, DELAY_MSG_SCREEN_SWITCH);
  8. }

在 Handler 的 case 中添加 MSG_CLEAR_SCREEN_DELAY 对应的处理,即清除消息标志 FLAG_KEEP_SCREEN_ON

[java]  view plain copy
  1. private Handler mMainHandler = new Handler() {
  2. @Override
  3. public void handleMessage(Message msg) {
  4. switch(msg.what) {
  5. case MSG_CLEAR_SCREEN_DELAY:
  6. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  7. break;
  8. case FULLCHANGE:
  9. setCameraState(STATE_IDLE);
  10. break;
  11. default:
  12. break;
  13. }
  14. };
  15. };

致此,就可以比较完整的实现上述需求了!

android app中如何获取电源锁保持屏幕常亮相关推荐

  1. Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)

    转自:https://www.jb51.net/article/129633.htm 前言 宽屏适配.禁止截屏和保持屏幕常亮,这三个与屏幕有关的 Android 开发小众知识,说不定什么时候就派上用场 ...

  2. Android屏幕常亮,其实很简单

    此文属于finddreams的原创博客,转载请注明出处:http://blog.csdn.net/finddreams/article/details/78363031   笔者所在公司做的APP是股 ...

  3. 【Linux】centos桌面版关闭锁屏、屏幕常亮

    关闭锁屏和屏幕常亮都是在application → system tools → settings中 关闭锁屏: 屏幕常亮:

  4. 通过Appium获取Android app中webview

    因为要测试Android app中嵌入的web页面,所以需要从native切换到webview.网上查了好多帖子,都用到类似下面代码: //判断是否有 WEBVIEW Set<String> ...

  5. 没有授权,Android App 也能获取你的权限?!

    Play Trick or Treat! 不给权限就捣乱! 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一直以来,无论是 Android 还是 iOS 用户都有一种困扰,即每次下载并 ...

  6. 2021-08-12 Android APP 保持屏幕常亮和取消屏幕常亮方法

    Android APP 保持屏幕常亮和取消屏幕常亮方法 一.有时候进入一个app想让屏幕常亮,这个这个可以使用 FLAG_KEEP_SCREEN_ON 功能,涉及下面函数 Window flag: a ...

  7. android车机总是自动熄屏,华为Mata20 Pro等Android屏幕常亮/永不熄屏APP:no screen off v 1.16...

    华为Mata20 Pro没有永不息屏选项了,但有些专用软件是需要一直运行和查看的,用这软件省去手指隔一段时间点一下屏幕的操作了 虽然刚打开no screen off会弹出的界面说只是针对旧手机有用,提 ...

  8. 低功耗蓝牙(BLE)在 Android APP 中的应用

    低功耗蓝牙(BLE)在 Android APP 中的应用 前言 最近公司接了一个新项目,用户可以把自己的乐器跟Phone或Pad连接起来,当弹奏乐器的时候,会把演奏情况同步反馈到设备上,方便用户练习, ...

  9. android中获取版本号,Android 开发中如何获取版本号

    android 开发中如何获取版本号. 1.获取版本名,版本号: /** * 获取版本号 * * @return * @throws exception */ private int getversi ...

最新文章

  1. exchange 2010备份及恢复
  2. Linux系统介绍(二)文件系统结构
  3. php imagefill,PHP 图像填充 imagefill、imagefilledarc 与 imagefilledrectangle() 函数
  4. 直播分享|邓文彬:如何在GPU/CPU/移动端高效训练和推断CNN网络
  5. 计算机开机跳过硬盘检查,电脑开机后如何跳过磁盘检查过程?
  6. Django(part26)--修改及删除记录
  7. TypeScript输入参数的默认值一例,以及对应生成的JavaScript代码分析
  8. php 请求url没有扩展名,apache – 将.php重定向到无扩展名,并在没有.php的情况下创建url...
  9. java3n 1_1005 继续(3n+1)猜想(JAVA)
  10. php的c方法,thinkphp的c方法的使用
  11. VC下几种转换为UNICODE字符串的方法
  12. 出现( linker command failed with exit code 1)错误总结
  13. sendRedirect的路径
  14. h5应用 vue 钉钉_快速上手——钉钉H5微应用开发接入
  15. Linear Programming and network flows P17 笔记
  16. ONVIF系列——Onvif协议介绍
  17. 通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB
  18. 基于PTPX的功耗分析
  19. js把数字金额转换成中文大写数字
  20. 金蝶中间件中标国家金质工程

热门文章

  1. 如何查找不同芯片keil软件仿真要配置的参数DAMSTM.DLL、-pSTM32F103C8
  2. 使用pygame.surface.subsurface() 来实现精灵动画
  3. !pdftex error (font expansion): auto expansion is only possible with scalable fonts
  4. 即将建设的A15完工后,上海的四环就将水到渠成
  5. 程序员:开始编程生涯的5个建议
  6. java.awt.font 宋体,SpringBoot项目集成字体工具类
  7. SQLServer基础语法大全(基础篇)
  8. 第04项目:淘淘商城(SpringMvc+Spring+Mybatis) 的个人学习实践总结【第三天】
  9. 哎呀java摩托车什么年代的,追溯到2000年的Web Java游戏,为何从兴起后一直被谈论到现在!...
  10. linux的网易云音乐界面不显示图片,网易云音乐Linux 1.2.0有一些问题,附出现libfribidi.so.0的解决...