android耳机线控的实现方法.doc
文本预览下载声明
耳机线控的功能
耳机线控是一种很好用,并且能提升用户体验的功能。可以用来实现一些常用和基本的功能。比如:实现音乐播放的控制,接听电话,音量控制等。下面写一下耳机线控的几种实现方式。
耳机线控的实现
耳机线控实现方式主要有两种,() 一种是前台的,前台的,在Activity 里处理,只有该Activity 在前台时才会处理按键。
重写onKeyUp()、onKeyDown(),它们分别处理放开事件和按下事件;
代码如下:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {//放开事件处理,keyCode为按键的键值,event 为按键事件的对像,其中包含了按键的信息。
switch(keyCode){
case KeyEvent.KEYCODE_MEDIA_PREVIOUS://耳机三个按键是的上键,注意并不是耳机上的三个按键的物理位置的上下。
//按键功能定义的处理。
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE://耳机单按键的按键或三按键耳机的中间按键。
case KeyEvent.KEYCODE_HEADSETHOOK://耳机单按键的按键或三按键耳机的中间按键。与上面的按键可能是相同的,具体得看驱动定义。
//按键功能定义的处理。一般与KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE、键的处理一样。
case KeyEvent.KEYCODE_MEDIA_NEXT://耳机三个按键是的下键,
//按键功能定义的处理。
}
return false;//为true,则其它后台按键处理再也无法处理到该按键,为false,则其它后台按键处理可以继续处理该按键事件。
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {//按下事件处理,同onKeyUp()方法。
switch(keyCode){
case KeyEvent.KEYCODE_MEDIA_PREVIOUS://耳机三个按键是的上键,注意并不是耳机上的三个按键的物理位置的上下。
//按键功能定义的处理。
//一般把功能定义为
//音乐:播放上一首
//视频:播放上一个视频或后退。
//收音机:向上搜索,
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE://耳机单按键的按键或三按键耳机的中间按键。
case KeyEvent.KEYCODE_HEADSETHOOK://耳机单按键的按键或三按键耳机的中间按键。与上面的按键可能是相同的,具体得看驱动定义。
//按键功能定义的处理。一般与KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE、键的处理一样。
//一般把功能定义为:
音乐播放的播放和暂停
case KeyEvent.KEYCODE_MEDIA_NEXT://耳机三个按键是的下键,
//按键功能定义的处理。
//一般把功能定义为:
//音乐:播放下一首
//视频:播放下一个视频或前进。
//收音机:向下搜索,
}
return false;//为true,则其它后台按键处理再也无法处理到该按键,为false,则其它后台按键处理可以继续处理该按键事件。
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {长按事件处理,同onKeyUp()方法。有的手机可能无法收到耳机的长按事件。
switch(keyCode){
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MEDIA_NEXT:
}
return false;
}
另一种是注册监听,监听Intent.ACTION_MEDIA_BUTTON,后台处理按键事件,有优先级,有可能被拦截,接收不到按键事件。
实现方式如下:
1、注册监听Intent.ACTION_MEDIA_BUTTON,代码如下:
显示全部