1.耳机插入和拔出时会发出广播ACTION_HEADSET_PLUG

 private final BroadcastReceiver mReceiver = new BroadcastReceiver() {      @Override      public void onReceive(Context context, Intent intent) {          String action = intent.getAction();          if (action.equals(Intent.ACTION_HEADSET_PLUG)) {              if(intent.hasExtra("state")) {                  if(intent.getIntExtra("state", 0) == 0) {                      Toast.makeText(context, "headset not connected", Toast.LENGTH_LONG).show();                  } else if(intent.getIntExtra("state", 0) == 1) {                      Toast.makeText(context, "headset connected", Toast.LENGTH_LONG).show();                  }              }          }      }  }; 

0:无插入,1:耳机和话筒均插入,2:仅插入话筒

2.在目录下读取状态

 private static final String HEADSET_STATE_PATH = "/sys/class/switch/h2w/state";  nbsp;private boolean isHeadsetExists() {      char[] buffer = new char[1024];      int newState = 0;      try {          FileReader file = new FileReader(HEADSET_STATE_PATH);          int len = file.read(buffer, 0, 1024);          newState = Integer.valueOf((new String(buffer, 0, len)).trim());      }      catch (FileNotFoundException e) {          Log.e("FMTest", "This kernel does not have wired headset support");      }      catch (Exception e) {          Log.e("FMTest", "", e);      }      return newState != 0;  }

3.第二种比较麻烦,其实android提供一个接口

AudioManager localAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);                  boolean isHeadSetOn = localAudioManager.isWiredHeadsetOn();                if(!isHeadSetOn){                    Toast.makeText(context, "请插入话筒", Toast.LENGTH_LONG).show();                    return;                }

不要忘了加上权限

 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 

更多相关文章

  1. android批量插入数据效率对比
  2. android数据库使用小结
  3. android通过耳机控制音乐播放器
  4. 网上找了些Android数据库操作的代码
  5. 【工具类】Android判断SD卡状态
  6. Android将发送的短信插入数据库
  7. Android之数据库
  8. 【Android】通过耳机调起语音助手App配置
  9. Android耳机声音自动调整

随机推荐

  1. 【Android(安卓)开发教程】解决Intent-Fi
  2. [置顶] Android学习之--prelink
  3. android获取程序安装时间
  4. Android 开发者不得不面对的六个问题
  5. Android(安卓)Vold和SDIO冲突问题解决方
  6. Android对emoji表情的处理
  7. 从零开始学Android之XML
  8. 把Android原生模拟器秒成渣的神器——Gen
  9. 【Android(安卓)开发教程】使用Intent-Fi
  10. 开发规范:《阿里巴巴Android开发手册》之