Следующие профили изначально поддерживаются Android: A2DP, HFP, HSP. Под «изначально» я подразумеваю, что Android способен передавать аудио на устройства, которые поддерживают хотя бы один из этих профилей.
Работа с профилями A2DP и HFP практически прозрачна для вашего приложения. Вы просто воспроизводите аудио в STREAM_MUSIC, и эти устройства будут просматривать его при подключении.
Это намного сложнее с устройствами профиля HSP. Официальная поддержка API для них была добавлена в API Level 8 (Android 2.2), и вам необходимо передавать звук в поток STREAM_VOICE: для получения дополнительной информации см. AudioManager.startBluetoothSco . Но определение, подключено ли устройство HSP, все еще официально не поддерживалось (хотя для этого есть обходные пути).
В API Level 11 были введены два новых класса: BluetoothHeadset и BluetoothA2DP , которые значительно облегчают жизнь. Эти два класса существовали в Android начиная с уровня API 3, но они были включены в официальный API только в 11-м выпуске (хотя эти классы значительно изменились со времени 3-го уровня API).