注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

android屏幕加解锁事件广播的监听  

2015-05-21 10:15:42|  分类: 安卓 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 想在程序中监听屏幕SCREEN_ON和SCREEN_OFF这两个action,实现屏幕锁定状态的监听,从而实现自己的相应功能。比较奇怪的是这两个action只能通过代码的形式注册才能被监听到,在AndroidManifest.xml中注册根本监听不到。去网上查了一下,原来是PowerManager那边在发这个广播的时候做了限制,限制只有register到代码中的receiver才能接收。

public class ScreenActionReceiver extends BroadcastReceiver {

private String TAG = "ScreenActionReceiver";
private boolean isRegisterReceiver = false;

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_SCREEN_ON)) {
Logcat.d(TAG, "屏幕解锁广播...");
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
Logcat.d(TAG, "屏幕加锁广播...");
}
}

public void registerScreenActionReceiver(Context mContext) {
if (!isRegisterReceiver) {
isRegisterReceiver = true;

IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
Logcat.d(TAG, "注册屏幕解锁、加锁广播接收者...");
mContext.registerReceiver(ScreenActionReceiver.this, filter);
}
}

public void unRegisterScreenActionReceiver(Context mContext) {
if (isRegisterReceiver) {
isRegisterReceiver = false;
Logcat.d(TAG, "注销屏幕解锁、加锁广播接收者...");
mContext.unregisterReceiver(ScreenActionReceiver.this);
}
}

}


  评论这张
 
阅读(299)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016