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

那么这引出一个问题,如何在 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 即可

    @Overridepublic 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 {@Overridepublic 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;}

android 中如何监听耳机键消息相关推荐

  1. linux监听耳机按键,Android 中如何监听耳机键消息

    在研究一个功能:Android如何通过耳机键来拍照/摄像,好处自不用多说了,拍照时可以防抖 那么这引出一个问题,如何在 Camera/VideoCamera Activity中监听耳机键. 耳机键在 ...

  2. android home跳转,Android 中按home键和跳转到主界面的实例代码

    Android 中按home键和跳转到主界面的实例代码 //home Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(In ...

  3. 【Android】Android中屏蔽返回键,home键以及其他实体按键

    屏蔽键重写activiy的两个方法就行 屏蔽返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { ...

  4. android开发 app消息提醒功能,Android中利用App实现消息推送机制的代码

    1.消息推送机制 服务器器端需要变被动为主动,通知客户一些开发商认为重要的信息,无论应用程序是否正在运行或者关闭. 我想到了一句话:don't call me,i will call you! qq今 ...

  5. 简述在android中如何发送广播消息,Android Intent发送广播消息实例详解

    Android Intent发送广播消息 Intent的另一种用途是发送广播消息,应用程序和Android系统都可以使用Intent发送广播消息,广播消息的内容是可以与应用程序密切相关的数据信息,也可 ...

  6. android 屏蔽实体按键,Android中屏蔽返回键,home键以及其他实体按键

    屏蔽键重写activiy的两个方法就行 屏蔽返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { ...

  7. android+蓝牙传输文件,在Android中使用蓝牙的消息和文件传输

    我正在开发一个应用程序,首先我们必须搜索和连接可用的配对蓝牙设备.我做到了连接.但之后我放了一个屏幕要求在文本和文件传输之间进行选择.当我选择文本时,将打开另一个屏幕,其中有edittext和按钮.无 ...

  8. Android的自定义键盘颜色,如何在自定义键盘Android中动态更改键的背景颜色或主题...

    我正在使用自定义键盘应用程序我需要设置或更改键盘的背景主题或颜色.在我的应用程序中,我们可以选择不同的背景主题和不同颜色的键行. 在第一次启动应用程序时它工作正常,但下次自定义键盘显示主题时不会更改. ...

  9. Android中使用Handler(消息机制)造成内存泄露的分析和解决

    问题描述: Handler 内部类持有 外部类Activity的引用,如果Activity退出而Handler还有延迟处理的消息没有处理完,会导致Activity不能回收,反复如此会导致内存泄露. 解 ...

最新文章

  1. matlab多边形扫描线填充算法代码,计算机图形学—多边形扫描与填充
  2. Redis详解(八)------ 主从复制
  3. 2020 年值得再读一遍的网易云信技术干货 | 上篇
  4. jqury ajax跳转界面,jquery ajax 界面跳转失败解决方案
  5. 两个网段在同一个交换机_告诉你PC不能通过二层交换机实现跨网段通信的小秘密:你很难想到...
  6. 方法 -------JavaScript
  7. showModalDialog模态对话框的使用以及浏览器兼容
  8. 创新创业技术路线怎么写_怎么创业起步 如何写创业计划?
  9. Apollo注册到自己的Eureka注册中心+配置中心集群
  10. bash之sed与awk初步
  11. sublime使用LiveReload自动刷新
  12. android 电源管理 和 Doze 模式
  13. 【转载】关于小程序的100个常见问题(基础知识扫盲)
  14. 【激光雷达】5 款免费 LiDAR 软件工具
  15. 牛牛找工作--网易2019实习生招聘编程题
  16. android 4.4 短信拦截,Android 4.4 KitKat升级率已经接近18%
  17. 抽象类 枚举 反射 接口
  18. WCP知识管理系统OpenOffice乱码解决
  19. Matlab中lsim函数使用
  20. Linux之jar包运行常用命令

热门文章

  1. OpenCV-通道分离cv::split
  2. 大学计算机专业绩点在3.5算好,大学绩点3.5算什么水平 绩点低有哪些补救方法...
  3. mysql dbversion_爱可生详解MySQL|不能从MySQL 8.0 复制到 5.8?一招教你解决
  4. 请输入30名同学的c语言成绩,求大神帮忙做这几道结构体的c语言!今天就要交实验报告!急啊急!!!!! (1)一个班级共有30名学...
  5. 自动化测试——DDT用法——结合unittest、requests库
  6. InteliJ IDEA生成可执行jar运行提示没有主清单属性
  7. 剑指offer面试题[29]-数组中出现次数超过一半的数字
  8. SoapUI、Jmeter、Postman三种接口测试工具的比较分析
  9. 通用计算机遵循什么原则,计算机组成原理——计算机系统概述考研题
  10. linux启动中继服务器失败,Tor中继服务器在Linux里安装配置的流程