마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이어폰(마이크) 단자로 들어온 것을 인식하는 라이브러리?

0 추천
현재 구현하고 싶은게

이어폰(마이크) 단자로 들어온 입력값을 인식하고

싶은데 그것을 구현할 만한 라이브러리 같은 것이 있을까요?

 

어떤방식으로 인식에 접근해야 하는지 막막하네요..

들어왔는지 아니면 안들어왔는지만 판단하면 되는 소스를 만들껀데

어느 부분을 건드려야 하는지 문의드립니다!
뇽석 (530 포인트) 님이 2013년 8월 6일 질문

2개의 답변

+1 추천
 
채택된 답변

브로드캐스트리시버(BroadcastReceiver)를 이용하시면 됩니다.

브로드캐스트리시버는 각종 콜백들에 대해서 온리시브 함수에서 원하는 처리를 할 수 있게 도와주는 클래스입니다.

이어폰 관련 기능은 Intent.ACTION_HEADSET_PLUG 필터를 이용하시면 되겠네요.

익명사용자 님이 2013년 8월 6일 답변
뇽석님이 2013년 8월 7일 채택됨
+1 추천
private MusicIntentReceiver myReceiver;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
 
 

 

myReceiver = new MusicIntentReceiver();
 
....생략....
	@Override 
	public void onResume() {
	    IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
	    registerReceiver(myReceiver, filter);
	    super.onResume();
	}
	private class MusicIntentReceiver extends BroadcastReceiver {
	    @Override public void onReceive(Context context, Intent intent) {
	        if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
	            int state = intent.getIntExtra("state", -1);
	            switch (state) {
	            case 0:
	                Log.d("111", "Headset is unplugged");
	                break;
	            case 1:
	                Log.d("111", "Headset is plugged");
	                break;
	            default:
	                Log.d("111", "I have no idea what the headset state is");
	            }
	        }
	    }
	}
	
	@Override 
	public void onPause() {
	    unregisterReceiver(myReceiver);
	    super.onPause();
	}

http://stackoverflow.com/questions/13610258/how-to-detect-when-a-user-plugs-headset-on-android-device-opposite-of-action-a 여기 참조했어여

웅바라지 (4,780 포인트) 님이 2013년 8월 6일 답변
...