개발/Android
[Android] 유선 이어폰 연결 감지 하기
준그래머
2024. 6. 5. 10:02
반응형
브로드 캐스트 리시버 등록
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