Как определить тип гарнитуры BT (SCO или A2DP) в Android SDK?

В моем приложении есть широковещательный приемник, который регистрирует каждое подключение устройства BT, отслеживая трансляцию android.bluetooth.device.action.ACL_CONNECTED. Но мне нужно знать, является ли устройство BT гарнитурой и, что более важно, является ли это гарнитурой SCO или A2DP. Я могу узнать, какие службы поддерживает подключенное устройство, используя BluetoothClass.Service, но я не знаю, какие службы должны соответствовать каждому типу гарнитуры. Вот перечисленные:

AUDIO 
CAPTURE
INFORMATION 
LIMITED_DISCOVERABILITY 
NETWORKING 
OBJECT_TRANSFER 
POSITIONING 
RENDER 
TELEPHONY

Может ли кто-нибудь сказать мне, какой из них определяет тип профиля гарнитуры (гарнитура, громкая связь или A2DP?


person user496854    schedule 29.04.2011    source источник


Ответы (1)


Вы можете использовать BluetoothProfile.ServiceListener и прослушивать onServiceConnetced, и вы будете получать уведомления о подключении A2DP или SCO. См. здесь

person Dennis Mathews    schedule 29.04.2011
comment
Извините, я должен был упомянуть - мне нужно, чтобы он работал на OS 2.0 и выше (API 5), это API 11, поэтому я должен сделать это так, как я это сделал в исходном посте, просто не знаю, какой услуги относятся к какому профилю - person user496854; 29.04.2011
comment
Приведенная выше информация дает информацию только о том, поддерживает ли устройство аудио, если в службе есть АУДИО. Нет способа узнать, какой профиль использует более старый общедоступный API. (Это может быть возможно через частные API) - person Dennis Mathews; 29.04.2011
comment
Хорошо, могу ли я определить протокол на основе BluetoothClass.Device? В нем перечислены все возможные основные и второстепенные классы устройств, так есть ли список, какие классы относятся к SCO, а какие к A2DP? - person user496854; 29.04.2011
comment
Нет, вы не можете детерминистически определить типы профилей — вы можете только догадываться, обычно устройства, которые могут работать с A2DP, также могут работать с громкой связью ... поэтому класс устройств будет иметь оба типа. - person Dennis Mathews; 29.04.2011
comment
Итак, вернемся к моему вопросу - как я могу предположить? какие классы устройств соответствуют возможным профилям? Нужно ли мне видеть, есть ли у устройства определенная комбинация классов? - person user496854; 29.04.2011