Android Intent: определить, когда подключается устройство Bluetooth A2DP (не активна ли маршрутизация a2dp)
Как узнать, когда устройство Bluetooth подключается к телефону, является ли оно A2DP или нет?
Это руководство дает очень простое руководство по прослушиванию Bluetooth-соединений.
Я хочу использовать это, чтобы определить, является ли какое-либо подключенное устройство Bluetooth типом A2DP.
AudioManager
есть метод isBluetoothA2dpOn()
но я не думаю, что это вернет истину сразу (или даже наверняка), так как только из-за того, что подключено устройство A2DP, это не значит, что через него маршрутизируется звук?
Я бы подумал, что информация о типе подключенного устройства будет доступна в полученном намерении (см. Учебник выше), но я не могу найти документацию по этому вопросу?
Я могу получить BluetoothClass
с этим кодом:
BluetoothClass btClass = intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
но это не помогает мне определить, является ли это A2DP
профиль, так как BluetoothClass
Документация гласит:
BluetoothClass полезен в качестве подсказки для приблизительного описания устройства (например, для отображения значка в пользовательском интерфейсе), но не надежно описывает, какие профили или службы Bluetooth фактически поддерживаются устройством. Точное обнаружение службы выполняется с помощью запросов SDP, которые автоматически выполняются при создании сокета RFCOMM с createRfcommSocketToServiceRecord(UUID) и listenUsingRfcommWithServiceRecord (String, UUID)
... что довольно бессмысленно для меня.