您的位置:首页 > 移动开发 > Android开发

Android监听锁屏键、Home键

2015-07-15 17:07 471 查看
项目用到了,记录下,返回键什么的物理按键使用onKeyDown监听就可以了,但是锁屏键、Home键不可以,这里使用广播监听两者状态变化

IntentFilter片段:

       mFilter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);//home键
mFilter.addAction(Intent.ACTION_SCREEN_ON);  //开屏
mFilter.addAction(Intent.ACTION_SCREEN_OFF);//锁屏
mFilter.addAction(Intent.ACTION_USER_PRESENT);//解锁


  onRecevier片段:

public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
if (mListener != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
// 短按home键
mListener.onHomePressed();
} else if (reason
.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
// 长按home键
mListener.onHomeLongPressed();
}
}
}
}
if(action.equals(Intent.ACTION_SCREEN_ON)){
mListener.onScreenOn();
}else if(action.equals(Intent.ACTION_SCREEN_OFF)){
mListener.onScreenOff();
}  else{// 解锁
//TODO
}


  最后提醒下,对于锁屏操作,由于先走的activity的onPause,onStop,所以不可以像以往反注册广播样在onPause里进行反注册,否则的话会接收不到锁屏操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: