Nexus6 확인해보니, Android Device의 A2DP 및 HFP가 enable 되어있으며, 각각의 경우 사용이 가능하다.
아래의 경로에서 각 profile을 enable 할 수 있다.
packages/apps/Bluetooth/res/values/config.xml
<bool name="profile_supported_a2dp">true</bool>
<bool name="profile_supported_a2dp_sink">false</bool>
<bool name="profile_supported_hdp">true</bool>
<bool name="profile_supported_hs_hfp">true</bool>
문제는 startBluetoothSco를 호출하여 HFP service를 사용할 경우 A2DP 는 suspend 상태가 된다는 것이다.
구글링을 통해 본 대부분의 문서에서 A2DP와 HFP는 exclusive하게 동작한다는 것을 확인하였다.
https://e2e.ti.com/support/wireless_connectivity/bluetooth_cc256x/f/660/t/585944
물론 동시 사용이 가능한 Device도 있는 것으로 보이지만,
Android의 경우 AudioPolicyManager에서 A2DP를 stop 시키므로
기본정책을 위배하면서까지 테스트 하는 risk를 감당할 이유는 없다.
아무래도 Piconet 특성상 제한된 대역폭 내에서 bidirectional로 동작하는 SCO 및 A2DP를 사용할 경우.
예상 및 해결이 불가능한 issue를 양산할 확률이 높을 것으로 예상된다.
'bluetooth' 카테고리의 다른 글
BLE 기본 용어 (0) | 2018.08.07 |
---|---|
Remote voice recognition in latest Android (0) | 2018.08.07 |
Profile 별 특징 비교 (0) | 2018.08.06 |
UHID: User-Space HID I/O drivers (0) | 2018.07.04 |
android hci debugging tip (실시간 패킷 보기) (0) | 2018.06.27 |