屏幕锁定时,返回按钮按下事件

时间:2015-04-23 08:23:40

标签: android

我正在尝试编写一个小应用程序,它会抓住按下后退按钮的KeyEvent,当屏幕被锁定时
我看到您可以轻松覆盖onKeyDownonBackPressed以捕获此事件,但这仅在活动正在运行时才有效。
据我所知,在一些Android手机上,如果不是全部,那么当屏幕被锁定时,操作系统不会听到背面和菜单按钮。

修改
我已经阅读了几篇关于捕获用户按下音量按钮的事件的帖子,所有人都表示,当屏幕关闭时,他们不是这样做的。 他们有理由相信这个案例是关于后退按钮的变化吗?

1 个答案:

答案 0 :(得分:3)

1)注册BroadCast Receiver for Intent.ACTION_SCREEN_OFF和Intent.ACTION_SCREEN_ON

2)使用Keyguard Manager检查屏幕是否已锁定,如:

KeyguardManager kManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean isLocked = kManager.inKeyguardRestrictedInputMode();

或不使用BroadCast Receiver,您可以查看:

KeyguardManager kManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if( kManager .inKeyguardRestrictedInputMode()) {
 //locked
} else {
 //not locked
 }

下一步如果屏幕被锁定,请检查后退按钮事件。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
   //Back Button is pressed
}
return super.onKeyDown(keyCode, event);
}