Android-捕获/抑制Home和EndCall按钮事件?
如果您曾经尝试在Android上编写locker应用程序,请确保遇到以下问题:Android-捕获/抑制Home和EndCall按钮事件?,android,key,keydown,Android,Key,Keydown,如果您曾经尝试在Android上编写locker应用程序,请确保遇到以下问题: boolean mBackPressed = false; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BAC
boolean mBackPressed = false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mBackPressed = true;
break;
case KeyEvent.KEYCODE_MENU:
if (mBackPressed)
unLock();
break;
default:
mBackPressed = false;
showMessage();
break;
}
}
return true;
}
private void showMessage() {
Toast.makeText(getBaseContext(), "Back + Menu", Toast.LENGTH_SHORT)
.show();
}
private void unLock() {
this.setResult(Activity.RESULT_OK);
this.finish();
}
似乎onKeyDown正在过滤除“后退”和“菜单”之外的所有键。…这不是真的!“主页”按钮仍将显示主屏幕,“结束呼叫”按钮将运行本机锁定应用程序 那个家伙也声称这是个问题:
您知道阻止两个按钮的解决方法吗?
是唯一的方法(通常)-?你可以 我不认为你能截获Home和End Call按钮。如果可以,这将允许恶意应用程序阻止用户离开,从而有效地劫持手机
应用程序的一个选项是使用.Ugh。。。我把几个钮扣放错地方了。。。对不起。这是我需要处理的Home和EndCall。谈到恶意应用程序,我相信用户总是可以重置手机或类似的东西。当然这是一个问题,但每个恶意用户只能使用一次。我认为这是出于设计,您无法捕获Home和EndCall,因此用户可以始终以相同的方式离开应用程序。您可以选择使用android.intent.category.Homeintent编写一个替换主屏幕。