开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册action为 android.intent.action.USER_PRESENT的广播,则可以监听解锁事件。但有时候,在后台执行某个操作时,需要主动判断屏幕的状态,比如是否是亮着的,可以使用PowerManager的isScreenOn方法进行判断,比如屏幕是否开启了自动旋转等。

注册监听解锁广播:

?
1
2
3
4
5
< receiver android:name = "com.home.testscreen.MyReceiver"
             < intent-filter
                 < action android:name = "android.intent.action.USER_PRESENT" /> 
             </ intent-filter
         </ receiver >

MyReceiver:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.home.testscreen; 
   
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.Toast; 
   
public class MyReceiver extends BroadcastReceiver { 
   
     @Override 
     public void onReceive(Context context, Intent intent) { 
         // 解锁 
         if (intent != null 
                 && Intent.ACTION_USER_PRESENT.equals(intent.getAction())) { 
             Toast.makeText(context, "屏幕已解锁" , Toast.LENGTH_SHORT).show(); 
        
    
   
}

主动判断屏幕是否亮着:

?
1
2
3
4
5
6
7
public boolean isScreenOn(Context context) { 
     PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
     if (pm.isScreenOn()) { 
         return true
    
     return false
}

判断是否开启了重力感应:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
  * 是否开启了重力感应
  * @param context
  * @return
  */ 
public boolean screenIsOpenRotate(Context context) { 
     int gravity = 0
     try
         gravity = Settings.System.getInt(context.getContentResolver(), 
                 Settings.System.ACCELEROMETER_ROTATION); 
     } catch (SettingNotFoundException e) { 
         e.printStackTrace(); 
    
     if (gravity == 1 ) { 
         return true
    
     return false
}

Android监听屏幕解锁和判断屏幕状态相关推荐

  1. Android监听手机屏幕解锁和判断屏幕状态

    开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在AndroidManifest配置里面注册action为 android.intent.action.USER_PRES ...

  2. 监听屏幕解锁和判断屏幕状态

    开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册action为android.intent.action.USER_PRESENT的广播,则可以监听解锁事件 ...

  3. Android监听手机网络变化

    Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...

  4. android 监听屏幕是否锁屏

    今天,简单讲讲如何监听手机屏幕是否锁屏. 实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可 ...

  5. android 强制锁屏代码,Android 监听锁屏、解锁、开屏 功能代码

    1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...

  6. android锁屏代码分析,Android 监听锁屏、解锁、开屏 功能代码

    1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...

  7. Android锁屏界面监听按键,Android 监听锁屏/开屏事件

    1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2.  BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.AC ...

  8. Android监听系统输入法键盘弹出显示与隐藏事件

    Android监听系统输入法键盘弹出显示与隐藏事件 有时候需要监听Android系统输入法的弹出显示事件,比如:微信聊天时,不管你当前在聊天中的什么位置(上滑查看消息历史),每当你点击输入框时,都会自 ...

  9. Android 监听横竖屏切换

    Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...

最新文章

  1. c#创建、保存excel正常执行要点补疑
  2. 『数据中心』供配电与空调设计基础知识
  3. java面向对象知识汇总的思维导图
  4. php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
  5. python visual studio pandas_pandas DataFrame索引行列的实现
  6. Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)
  7. MySQL binlog_error_action分析
  8. scala学习-scala中的特殊符号使用
  9. 系统学习深度学习(三十八)--深度确定性策略梯度(DDPG)
  10. Hadoop:Hadoop基本命令
  11. 数据结构--二叉搜索树
  12. Linux 设置系统时间和时区2.Ubuntu
  13. mysql innodb count 优化_MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
  14. java 编译单个文件_单独Java文件的通用快速编译方法
  15. 微软语音合成助手 v1.5.1 文本转语音工具,真实语音AI生成器
  16. 台式计算机用电视机做显示器,用电视机当显示器会不会亮瞎眼?答案在此
  17. 解决ffmpeg合并视频后播放条拖不动,画面出错的问题
  18. 迭代数据流分析中的逆后序(Reverse Postorder)
  19. Kubesphere-多节点安装
  20. 晟盾科技加入龙蜥社区,共建开源新生态

热门文章

  1. 8848钛金手机,在主流品牌们够不到的高端市场野蛮生长
  2. oracle中sign函数详解
  3. 【python编程】基础知识2—语句:循环,条件,break,pass,continue
  4. 一个Ubuntu下禁用笔记本键盘触摸板的简单脚本
  5. Flex3权威指南 读后感
  6. 农村宝妈省钱记:一块钱也能养多肉!
  7. java vue elementui 上传照片墙
  8. Centos7下离线安装搜狗输入法
  9. 正则表达式 千分位分隔符(金额每3位添加逗号)
  10. OCR字符识别技术总览