Android监听屏幕解锁和判断屏幕状态
开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册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监听屏幕解锁和判断屏幕状态相关推荐
- Android监听手机屏幕解锁和判断屏幕状态
开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在AndroidManifest配置里面注册action为 android.intent.action.USER_PRES ...
- 监听屏幕解锁和判断屏幕状态
开发后台服务的时候经常需要对屏幕状态进行判断,如果是想要监听屏幕解锁事件,可以在配置里面注册action为android.intent.action.USER_PRESENT的广播,则可以监听解锁事件 ...
- Android监听手机网络变化
Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...
- android 监听屏幕是否锁屏
今天,简单讲讲如何监听手机屏幕是否锁屏. 实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可 ...
- android 强制锁屏代码,Android 监听锁屏、解锁、开屏 功能代码
1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...
- android锁屏代码分析,Android 监听锁屏、解锁、开屏 功能代码
1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...
- Android锁屏界面监听按键,Android 监听锁屏/开屏事件
1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2. BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.AC ...
- Android监听系统输入法键盘弹出显示与隐藏事件
Android监听系统输入法键盘弹出显示与隐藏事件 有时候需要监听Android系统输入法的弹出显示事件,比如:微信聊天时,不管你当前在聊天中的什么位置(上滑查看消息历史),每当你点击输入框时,都会自 ...
- Android 监听横竖屏切换
Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...
最新文章
- c#创建、保存excel正常执行要点补疑
- 『数据中心』供配电与空调设计基础知识
- java面向对象知识汇总的思维导图
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- python visual studio pandas_pandas DataFrame索引行列的实现
- Python isinstance() 函数用法及实例另类高级使用(附带classmethod 修饰符、json.dumps)
- MySQL binlog_error_action分析
- scala学习-scala中的特殊符号使用
- 系统学习深度学习(三十八)--深度确定性策略梯度(DDPG)
- Hadoop:Hadoop基本命令
- 数据结构--二叉搜索树
- Linux 设置系统时间和时区2.Ubuntu
- mysql innodb count 优化_MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
- java 编译单个文件_单独Java文件的通用快速编译方法
- 微软语音合成助手 v1.5.1 文本转语音工具,真实语音AI生成器
- 台式计算机用电视机做显示器,用电视机当显示器会不会亮瞎眼?答案在此
- 解决ffmpeg合并视频后播放条拖不动,画面出错的问题
- 迭代数据流分析中的逆后序(Reverse Postorder)
- Kubesphere-多节点安装
- 晟盾科技加入龙蜥社区,共建开源新生态