Android亮屏和熄屏控制
想要了解亮屏和灭屏的知识首先要了解系统服务 --- PowerManager.java
一:关于系统服务 --- PowerManager.java
PowerManager.java就是管理我们电源方面的功能的,当然也包括我们屏幕的亮和熄灭。我们的应用程序就是通过这个系统服务来实现亮屏和熄屏的功能的。、
1:首先来看一下怎么判断屏幕是亮屏还是灭屏
有两种判断方法:
第一种方法:广播的方式
- public void onCreate(Bundle savedInstanceState) {
- final IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_SCREEN_OFF);
- filter.addAction(Intent.ACTION_SCREEN_ON);
- registerReceiver(mBatInfoReceiver, filter);
- }
- private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(final Context context, final Intent intent) {
- final String action = intent.getAction();
- if(Intent.ACTION_SCREEN_ON.equals(action)){
- Log.d("lyj", "-----------------screen is on...");
- }else if(Intent.ACTION_SCREEN_OFF.equals(action)){
- Log.d("lyj", "----------------- screen is off...");
- }
- }
- };
第二种方法:
- PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
- boolean screen = pm.isScreenOn();
- if(!screen){//如果灭屏
- //相关操作
- }
*关于应用程序获取PowerManager服务:PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager是系统服务,它的生命周期不是应用程序所能控制的;应用程序只能通过系统,向系统请求获取PowerManager服务,然后系统把这个服务的应用给我们。
*关于goToSleep()方法, 这个方法可以强制我们的屏幕熄屏。我们可以这样调用:在拿到pm对象之后,调用 pm.goToSleep(SystemClock.uptimeMillis());
*关于setBacklightBrightness()方法,这个方法可以设置背光的亮度,从0-255
二:定时熄灭屏幕
首先要了解控制屏幕的方法就是PowerManager.WakeLock这个东西就是亮屏控制,这里说的亮屏,它定义了几种类型的亮屏。如下:
类型 | cpu | 屏幕 | 键盘 |
PARTIAL_WAKE_LOCK | on | off | off |
SCREEN_DIM_WAKE_LOCK | on | dim | off |
SCREEN_BRIGHT_WAKE_LOCK | on | Brigh | off |
FULL_WAKE_LOCK | on | Brigh | Brigh |
接下来看一下怎么使用这个WakeLock:
- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG");
- //屏幕会持续点亮
- wakeLock.acquire();
- //释放锁,屏幕熄灭。
- wl.release();
所以这样来看,定时灭屏只需要延时调用release()方法即可:
- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG");
- wakeLock.acquire();
- //然后定时
- mTimeHandler.postDelayed(new Runnable(){
- public void run(){
- wakeLock.release();//
- }
- }, 10*1000);//延时10秒灭屏
特别注意:acquire()和release()要成对调用,如果只申请了亮屏,没有释放,屏幕会一直处于亮屏状态。所以调用acquire()后一定要记得释放!
Android亮屏和熄屏控制相关推荐
- Android亮屏、熄屏控制
在Android应用开发中,不少的应用需要和屏幕打交道,例如闹钟响铃的时候要保持屏幕处于亮屏状态,而在提醒过后又需要将屏幕熄灭.那么,在Android中是怎样来控制亮屏和熄屏的呢?下面就揭开神秘的面纱 ...
- android系统息屏设置_Android亮屏和熄屏控制
一. 前言 我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏.那么今天,我们来分析下这方面的功能. 二. 系统服务 --- PowerManager ...
- android如何定时息屏_Android亮屏和熄屏控制实例详解
本文实例讲述了Android亮屏和熄屏控制实现方法.分享给大家供大家参考,具体如下: 一.概述 我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏.那 ...
- android系统息屏设置_Android亮屏和熄屏控制实例详解
本文实例讲述了Android亮屏和熄屏控制实现方法.分享给大家供大家参考,具体如下: 一.概述 我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏.那 ...
- Android 10亮屏、熄屏和自动调光
前言 Android设备与用户进行交互往往通过屏幕进行,目前市场手机设备对于屏幕越来月看重,oled.高刷.大尺寸.全色域等都是各大厂商的pk项,目的都是为了提高设备的交互体验,同时现在大多数设备都已 ...
- bat脚本 自动锁屏加熄屏 准点下班
创建两个bat脚本 第一个内容如下: schtasks /create /tn test_task /tr C:\Users\admin\Desktop\kcol.bat /sc DAILY /st ...
- Android 监听屏幕熄屏亮屏和主动唤醒屏幕
// 监听熄屏和亮屏需要添加权限 <uses-permission android:name="android.permission.DEVICE_POWER"/> & ...
- Android 点击按钮熄屏
有时候我们在一些酒店里看到一些控制设备的pad,当我们点击关闭按钮会关闭设备的同时把pad的屏幕给熄灭,我们今天就来尝试实现点击按钮熄灭屏幕这个功能. 1.在res下创建xml文件夹,创建一个lock ...
- android 刷机后熄屏断网
情况说明 我的黑鲨1代刷机后,部署了Linux系统,但是只要熄屏后过一会儿就无法访问网络了.尝试了修改电量管理.关闭省电模式等,均无效. 经过很久很久的测试,终于找到了原因.Android6.0或更高 ...
最新文章
- 用算法代替生物大脑,90后博士造出活的微型机器人登上Science子刊
- android开发字体样式,Android开发中修改程序字体的样式
- 用计算机计算线性卷积的基本规则,实验三_线性卷积与圆周卷积的计算.doc
- Excel获得焦点变色
- ImportError: No module named protobuf
- 多列集合的索引器实现
- ComboBox联动
- mysql中使用concat例子
- CVPR2021 | 最新CVPR2021论文抢先看,附全部下载链接!
- 去掉Mybatis Generator生成的一堆 example
- C/C++中字符串切割(split)
- python背离点的判断
- sql server 重建索引
- 安装Ubuntu时:安装程序向硬盘复制文件时遇到错误
- 文件加密的c语言程序课程设计,C语言文件加密课程设计.pdf
- 3.4 Postman调用手顺(Netsuite相关)
- 地铁框架保护的原理_地铁直流系统中框架保护原理及处理程序
- vue之router莫名其妙的bug
- Git原理杂谈之pull/push命令
- linux 星际争霸,让星际争霸在Linux操作系统下转起来
热门文章
- 数据库修改表中的数据(SqlServer)
- JAVA实现2048小游戏
- linux中将文本中的单词换掉的指令_干货:Linux常用命令全称及讲解
- HTML中head与body标签
- 安装出错:Command line option syntax error.Type Command /? for help.解决方案
- CSS 实现切角效果
- shell脚本编程100例
- Unity 中 print 和 Debug.Log 的区别
- android教案,android教学教案.doc
- python实现PDF压缩