public class MainActivity extends Activity {     private String  TAG="key";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }     @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {         switch (keyCode) {            case KeyEvent.KEYCODE_ENTER:     //确定键enter           case KeyEvent.KEYCODE_DPAD_CENTER:               Log.d(TAG,"enter--->");               break;            case KeyEvent.KEYCODE_BACK:    //返回键               Log.d(TAG,"back--->");                return true;   //这里由于break会退出,所以我们自己要处理掉 不返回上一层            case KeyEvent.KEYCODE_SETTINGS: //设置键               Log.d(TAG,"setting--->");                break;            case KeyEvent.KEYCODE_DPAD_DOWN:   //向下键                 /*    实际开发中有时候会触发两次,所以要判断一下按下时触发 ,松开按键时不触发                 *    exp:KeyEvent.ACTION_UP                 */                 if (event.getAction() == KeyEvent.ACTION_DOWN){                        Log.d(TAG,"down--->");                }                  break;            case KeyEvent.KEYCODE_DPAD_UP:   //向上键               Log.d(TAG,"up--->");                break;            case     KeyEvent.KEYCODE_0:   //数字键0               Log.d(TAG,"0--->");                break;            case KeyEvent.KEYCODE_DPAD_LEFT: //向左键                Log.d(TAG,"left--->");                break;            case KeyEvent.KEYCODE_DPAD_RIGHT:  //向右键               Log.d(TAG,"right--->");                break;            case KeyEvent.KEYCODE_INFO:    //info键               Log.d(TAG,"info--->");                break;            case KeyEvent.KEYCODE_PAGE_DOWN:     //向上翻页键            case KeyEvent.KEYCODE_MEDIA_NEXT:                  Log.d(TAG,"page down--->");                 break;              case KeyEvent.KEYCODE_PAGE_UP:     //向下翻页键            case KeyEvent.KEYCODE_MEDIA_PREVIOUS:                  Log.d(TAG,"page up--->");                 break;             case KeyEvent.KEYCODE_VOLUME_UP:   //调大声音键                 Log.d(TAG,"voice up--->");                 break;             case KeyEvent.KEYCODE_VOLUME_DOWN: //降低声音键                 Log.d(TAG,"voice down--->");                  break;             case KeyEvent.KEYCODE_VOLUME_MUTE: //禁用声音                  Log.d(TAG,"voice mute--->");                 break;             break;          default:             break;        }         return super.onKeyDown(keyCode, event);     } }

home键的监听要监听广播:

 class  HomeRecaiver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent) {            String action = intent.getAction();            if(action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){                 String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);                if(SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)){                    Toast.makeText(MainActivity.this,"home键触发",0).show();                    Log.d(TAG, "home键触发");                }            }        }     }

在oncreate()注册广播

    public final String SYSTEM_DIALOG_REASON_KEY = "reason";    public final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";    /**     * 注册广播     */    private void initReceiver() {         homeReceiver = new HomeRecaiver();        IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);        registerReceiver(homeReceiver, filter);    }

退出注销广播

@Override    protected void onDestroy() {        super.onDestroy();        if(homeReceiver!=null){            unregisterReceiver(homeReceiver);        }    }

更多相关文章

  1. android apk安装结束的系统广播的监听
  2. Android(安卓)坐标
  3. android内部类广播(本地广播)BroadcastReceiver的静态注册方法(Andr
  4. Android使用GPS定位
  5. android之seekBar
  6. Android(安卓)发送无序广播
  7. Android消息通知声音和振动
  8. 【Android】利用广播BroadCast监听网络的变化
  9. Android(安卓)- 震动反馈和提示音实现

随机推荐

  1. Android 铃声设置界面,起始位置为当前已选
  2. Android震动和播放资源文件中的声音文件
  3. Android和Linux版本对应
  4. [置顶] Android自定义标题栏
  5. Lint found fatal errors while assembli
  6. Android(安卓)Retrofit 2.0自定义JSONObj
  7. Android Volley 详解
  8. Android 动画标签——set
  9. android get请求数据
  10. android之监听手机来电状态