@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) { // 监控/拦截/屏蔽返回键
} else if (keyCode == KeyEvent.KEYCODE_MENU) {
// 监控/拦截菜单键
if (noReturn) {
ShowDialog("提示", "请完成本笔交易!");
}else {
return true;
}
} else if (keyCode == KeyEvent.KEYCODE_HOME) {
// 由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow()
if (noReturn) {
ShowDialog("提示", "请完成本笔交易!");
}else {
return true;
}
}
return super.onKeyDown(keyCode, event);
}
HOME键的禁用
借用上面的方法做个简单的介绍KeyEvent.KEYCODE_BACK返回键的控制,keyCode == KeyEvent.KEYCODE_MENU menu键的控制。
keyCode == KeyEvent.KEYCODE_HOME home键的控制,需要重写onAttachedToWindow()方法,并添加下面的权限
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
@Override
public void onAttachedToWindow() {
// try {
super.onAttachedToWindow();
// this.getWindow().setType(
// WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); //
// this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
// //
this.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
// } catch (Exception e) {
// e.printStackTrace();
// }
}
//具体使用的方法,监听home menu back键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU
|| keyCode == KeyEvent.KEYCODE_HOME||keyCode==KeyEvent.KEYCODE_APP_SWITCH||keyCode==KeyEvent.KEYCODE_BACK) { // 监控/拦截/屏蔽返回键
if ("1".equals(biaoshiI) || czkOver == true) {
// 只要银行卡或储值卡支付了就必须完成本笔交易
ShowDialog("提示", "请完成本次笔交易!");
} else {
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
//具体使用的方法,监听home menu back键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU
|| keyCode == KeyEvent.KEYCODE_HOME||keyCode==KeyEvent.KEYCODE_APP_SWITCH||keyCode==KeyEvent.KEYCODE_BACK) { // 监控/拦截/屏蔽返回键
if ("1".equals(biaoshiI) || czkOver == true) {
// 只要银行卡或储值卡支付了就必须完成本笔交易
ShowDialog("提示", "请完成本次笔交易!");
} else {
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}