在研究一个功能:如何通过耳机键来拍照/摄像,好处自不用多说了,拍照时可以防抖

那么这引出一个问题,如何在 Camera/VideoCamera Activity中监听耳机键。

耳机键在 android 中的定义为

/** Key code constant: Headset Hook key.
* Used to hang up calls and stop media. */
public static final int KEYCODE_HEADSETHOOK = 79;

主要用来接听/挂断 电话,播放/暂停音乐视频等

监听耳机键有两种方式:

1,直接在 Activity的onKeyDown 或 onKeyUp 函数中添加对应的 case 即可

    @Override    public boolean onKeyUp(int keyCode, KeyEvent event) {        switch (keyCode) {……case KeyEvent.KEYCODE_HEADSETHOOK://add your code here……        }        return super.onKeyUp(keyCode, event);    }


2,注册 BroadcastReceiver 来响应该按键

//  listener media buttonprivate BroadcastReceiver mMediaButtonReceiver = null;private class MediaButtonBroadcastReceiver extends BroadcastReceiver {    @Override public void onReceive(Context context, Intent intent) { Log.v(TAG," call MediaButtonBroadcastReceiver"); KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); Log.v(TAG, " event "+event); if ((event != null)&& (event.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK)) {Toast.makeText(VideoCamera.this, R.string.hook, Toast.LENGTH_SHORT).show(); }  } } //registerReceiverIntentFilter mediaButtonIntentFilter = new IntentFilter();mediaButtonIntentFilter.addAction(Intent.ACTION_MEDIA_BUTTON);mMediaButtonReceiver = new MediaButtonBroadcastReceiver();registerReceiver(mMediaButtonReceiver, mediaButtonIntentFilter); //unregisterReceiverif (mMediaButtonReceiver != null){unregisterReceiver(mMediaButtonReceiver);mMediaButtonReceiver = null;}


更多相关文章

  1. Android实现标题显示隐藏功能
  2. 【FF7】关于多成Layer嵌套的问题
  3. android onClick事件的不同写法
  4. Android拍照获得图片URI为空的处理方法
  5. Android(安卓)监听返回按钮事件
  6. android关于轮询的一种解决方案
  7. android 2.1 监听电话状态并自动接听来电
  8. Android写一个实时输入框功能
  9. android视频播放器demo

随机推荐

  1. Android开发黄金搭档:Android(安卓)Studio
  2. 一步步探索学习Android(安卓)Touch事件分
  3. android在apk中获取root权限,并执行命令
  4. 【Android】下拉刷新实现
  5. Android启动Application onCreate走了多
  6. Android(安卓)sdk版本以及兼容性问题
  7. Android之3D动画效果
  8. Android(安卓)App 构建流程分析
  9. Android(安卓)自定义Switch开关按钮的样
  10. 使用Ant自动构建Android版本