標籤:
1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.KeyEvent; 5 import android.widget.Toast; 6 7 public class MainActivity extends Activity { 8 9 10 @Override11 protected void onCreate(Bundle savedInstanceState) {12 super.onCreate(savedInstanceState);13 setContentView(R.layout.activity_main);14 }15 //我們在處理物理按鍵事件時,提供的回調方法有onKeyUp(),onKeyDown(),和onKeyLongPress(),比如音量鍵、返回鍵16 17 @Override18 public boolean onKeyDown(int keyCode, KeyEvent event) {19 if(keyCode == KeyEvent.KEYCODE_BACK){20 Log.e("TAG", "這是監聽鍵盤操作,按下了Back鍵");21 }22 return super.onKeyDown(keyCode, event);23 }24 @Override25 public boolean onKeyUp(int keyCode, KeyEvent event) {26 if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){27 Log.e("TAG", "音量加鍵");28 }29 return super.onKeyUp(keyCode, event);30 }31 32 //Activity中,我們可以重寫onBackPressed()方法來處理返回鍵,如兩次按鍵退出33 //第一次按下的時候,記錄事件34 //第二次按下的事件減去第一次按下的時間小於2s就退出,否則將目前時間賦給第一次事件35 long startTime;36 37 @Override38 public void onBackPressed() {39 Log.e("TAG", "監聽Back鍵");40 41 if(System.currentTimeMillis()-startTime<2000){42 super.onBackPressed();//釋放資源,這個也可以直接finish(),但調用父類的釋放的更徹底43 }else{44 //記錄目前時間45 startTime = System.currentTimeMillis();46 Toast.makeText(this, "再按一次Back鍵退出", Toast.LENGTH_SHORT).show();47 }48 }49 50 }
一些常用物理按鍵
電源鍵 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
Android 物理按鍵