2015-04-23 144 views
2

我正试图写一个小应用程序,它会捕获KeyEvent的后退按钮被按下,当屏幕被锁定时
我看到您可以轻松覆盖onKeyDownonBackPressed以捕捉此事件,但只有在活动正在运行时才能使用。
据我所知,在一些android手机上,如果不是所有的手机,操作系统都不会在屏幕锁定时听到背面和菜单按钮。当屏幕锁定时捕获返回按钮按下事件

编辑
我看了几个关于捕捉用户按下音量按钮的事件的帖子,和所有的说,他们是不是一种方法,这样做的时候,屏幕是关闭的。
他们有理由相信案件是关于后退按钮的变化吗?

+0

所以首先你需要找到锁定或不在服务中的屏幕 – Sree

+0

当屏幕关闭时,大多数手机没有活动后退按钮。他们有屏幕导航(导航栏) –

回答

3

1)与广播接收器用于Intent.ACTION_SCREEN_OFF和Intent.ACTION_SCREEN_ON

2)检查注册如果屏幕是使用键盘锁管理器等锁定:

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

使用或不使用广播接收器,你可以检查,如:

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); 
} 
+0

请看我编辑我的问题。 – Presen

相关问题