본문 바로가기
개발/Android

[Android] 유선 이어폰 연결 감지 하기

by 준그래머 2024. 6. 5.
반응형

브로드 캐스트 리시버 등록

IntentFilter filter = new IntentFilter();
filter.addAction(ACTION_HEADSET_PLUG);
registerReceiver(receiver, filter);

ACTION_HEADSET_PLUG를 등록

 

브로드 캐스트 리시버 생성

private final BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(ACTION_HEADSET_PLUG)){
            int state = intent.getIntExtra("state", -1);
            if(state == 1){ // 연결된 상태
                String name = intent.getStringExtra("name"); // 이어폰 이름
                int microphone = intent.getIntExtra("microphone", 0); // 마이크 유무 1이면 존재, 0이면 없음               
            }
        }
    }
};

Intent가 갖고 있는 extra 값들:

  • state(int) ⇒ 0(연결되지 않은 상태), 1(연결된 상태)
  • name(string) ⇒ 헤드셋 유형
  • microphone(int) ⇒ 0(마이크 없음), 1(마이크 있음)

 

참고

 

AudioManager  |  Android Developers

 

developer.android.com

 

반응형