手机有个很人性化的设计,随着耳机的插拔,媒体的音量会有两种不同的状态。推理,手机中必然有一种机制实现对耳机插拔的实时监测。本文章就对这种机制进行简单描述,只涉及应用层。有两种方法实现对耳机是否插入手机的监测:一种是采用广播方式实现实时监测,一种是调用Android内部接口。下面对两种方法进行详细描述。
1、广播方式
广播是Android中实现系统级消息通知的机制,灵活简单,如果某个软件要判断某个消息,只要简单的在软件中进行注册即可。耳机插入和拔出时会发出广播ACTION_HEADSET_PLUG,所以只要注册一个广播接受者就可以监听耳机的状态。
直接上代码:
//广播处理接口
public class HeadSetChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.hasExtra("state")){
if(intent.getIntExtra("state",0) == 0){
//断开耳机
//可以加入自己想要处理的代码
Toast.makeText(context,"discontent",Toast.LENGTH_SHORT).show();
}else if(intent.getIntExtra("state",0) == 1){
//连接耳机
Toast.makeText(context,"content",Toast.LENGTH_SHORT)