안드로이드 개발 질문/답변
(글 수 45,052)
현재 전화받는 상태가 블루투스 헤드셋을 이용한 전화받기 인지.. 아니면 일반 통화 모드 인지.... 한뼘 통화모드(스피커모드) 인지
알수 있는방법이 있나요?
2012.11.23 01:38:26
날쎄님 소중한 답변 감사합니다.
isAudioConnected 메소드는 확인해보니까. 블루투스 헤드셋중 Streo 헤드셋에 해당되는 내용 같습니다....
테스트를 해보니까. MoNo(전화만되는..볼륨조절도 가능)헤드셋에서는 isAudioConnected 값이 false로 나오네요..
휴...블루투스로 프로젝트 하나 하고 있는데...너무 힘드내요 ㅠㅠ 그래도 답변 너무 감사합니다.!!!
2012.11.23 05:26:47
네. 그러네요. :) a2dp 와 headset 을 구분해야 하는데, 코드에 답이 있었네요.
마지막 링크에 코드 윗부분에 보시면 아래와 같이 bluetooth service 연결/해제시 리스너를 등록할수 있네요.
코드 원작자도 리스너안에서 profile 을 headset 과 비교해서 사
// Define Service Listener of BluetoothProfile
private BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener()
도움이 되었으면 합니다. :)
해보지는 않았지만, 도움이 되었으면 하는 마음에 몇자 남겨봅니다.
아래 링크보시면 블루투스 관련된 class 가 몇개 나오는데, 한번 살펴 보시고,
http://developer.android.com/guide/topics/connectivity/bluetooth.html
http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html
아래는 BluetoothHeadset Class 입니다.
http://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html
위 함수를 보시면, 현재 SCO 가 연결되었는지를 알수 있습니다.
그니까 Call 상태에서 위 함수로 return 값을 확인해보면, 알수 있을거 같아요.
관련 코드를 찾아보았는데요.
http://stackoverflow.com/questions/12509135/how-to-get-bluetooth-connected-devices-using-bluetoothheadset-api
해당 글의 Answer 로 지정되지 않은 글에서 관련코드가 보이네요.
getConnectedDevices 함수로 블루투스 연결된 리스트를 가져온후에 SCO가 연결되었는지 확인하는코드입니다.
스피커 모드는 잘 모르겠네요. :)
도움이 되셨길 바랍니다.