Android物理按键代码名称和监听
2019-01-07 本文已影响22人
蘑菇v5
【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!
一、常用物理按键
-
电源键
KEYCODE_POWER
-
后退键
KEYCODE_BACK
-
菜单键
KEYCODE_MENU
-
HOME
键
KEYCODE_HOME
-
相机键
KEYCODE_CAMERA
-
音量键
KEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWM
-
搜索键
KEYCODE_SEARCH
-
确定键
KEYCODE_DPAD_CENTER
-
方向键
KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT
-
键盘键
KEYCODE_0...KEYCODE_9
KEYCODE_A....KEYCODE_Z
二、监听
重写onKeyDown方法
if(keyCode == event.KEYCODE_BACK) {
return true;
}else if (keyCode == event.KEYCODE_MENU){
return true;
}else if (keyCode == event.KEYCODE_VOLUME_UP){
return true;
}else if (keyCode == event.KEYCODE_VOLUME_DOWN){
return true;
}else {
return super.onKeyDown(keyCode, event);
}
重写以上代码,可以禁用返回键、菜单键,音量上下键有些恶意代码通过修改返回键达到HOME键效果,达到进程还保留在系统中
关键代码如下监听返回键,相当于点击home键:
PackageManager pm = getPackageManager();
ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME), 0);
if (keyCode == KeyEvent.KEYCODE_BACK) {
ActivityInfo ai = homeInfo.activityInfo;
Intent startIntent =new Intent(Intent.ACTION_MAIN);
startIntent.addCategory(Intent.CATEGORY_LAUNCHER);
startIntent.setComponent(new ComponentName(ai.packageName, ai.name));
startActivitySafely(startIntent);
return true;
}else{
return super.onKeyDown(keyCode, event);
}