Android 物理按键整理及实例代码
先给大家看一段代码,然后说明。
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.KeyEvent;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//我们在处理物理按键事件时,提供的回调方法有onKeyUp(),onKeyDown(),和onKeyLongPress(),比如音量键、返回键
@Override
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
if(keyCode==KeyEvent.KEYCODE_BACK){
Log.e("TAG","这是监听键盘操作,按下了Back键");
}
returnsuper.onKeyDown(keyCode,event);
}
@Override
publicbooleanonKeyUp(intkeyCode,KeyEventevent){
if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){
Log.e("TAG","音量加键");
}
returnsuper.onKeyUp(keyCode,event);
}
//Activity中,我们可以重写onBackPressed()方法来处理返回键,如两次按键退出
//第一次按下的时候,记录事件
//第二次按下的事件减去第一次按下的时间小于2s就退出,否则将当前时间赋给第一次事件
longstartTime;
@Override
publicvoidonBackPressed(){
Log.e("TAG","监听Back键");
if(System.currentTimeMillis()-startTime<2000){
super.onBackPressed();//释放资源,这个也可以直接finish(),但调用父类的释放的更彻底
}else{
//记录当前时间
startTime=System.currentTimeMillis();
Toast.makeText(this,"再按一次Back键退出",Toast.LENGTH_SHORT).show();
}
}
}
一些常用物理按键
电源键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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!