Доступ к профилю для Windows 10 Pro -version 1803
Мы ищем доступ и использование профилей Bluetooth в нашем приложении WPF с использованием С# в Visual Studio 2017.
Сведения о выпуске:
Платформа: Windows 10 Pro - версия 1803.
Краткое описание проблемы: мы пытаемся получить доступ к профилям Bluetooth через рабочий стол (С#) подключенных телефонов, однако в окнах 10 разрешено отображение профиля, но профили не работают, например: HFP подключается, однако голос не слышен
Мы протестировали это на следующих устройствах Bluetooth:
1.Bluetooth CSR 4.0 Dongle (CSR8510 A10) (Примечание: этот Bluetooth подключается и показывает HFP и работает должным образом, однако Bluetooth не отображается в списке устройств, и поэтому мы не можем подключаться программно с помощью С#)
2.IOGEAR Bluetooth 4.0 (модель GBU521W6) (отображается в списке устройств, и наше приложение может обнаруживать устройство, однако HFP работает не так, как ожидалось, как из приложения, так и из обычного раздела устройства)
Обязательные профили:
1.Hands-Free Profile (HFP) 2. Профиль доступа к сообщениям (MAP) 3. Профиль доступа к телефонной книге (PBAP)
Мы уже пробовали:
- Обновление драйверов
- Пытался удалить установку много раз
- Используется Android, ios и windows phone
Замечание: наше приложение с одинаковым кодом работает на Windows 7
Ответы
Ответ 1
MAP abd PBAP не является проблемой, потому что оба они основаны на OBEX (это RFCOMM).
Однако могут возникнуть проблемы с HandsFree. Он отлично работает с драйверами BlueSoile. Но со стандартным microsoft может не работать.
Первый шаг - использовать BluetoothSetServiceState с HFP UUID, чтобы сообщить Windows о том, чтобы установить драйверы для вашего HFP-профиля вашего устройства. Если функция выполнена успешно, вы должны увидеть 2 аудиоустройства, появившиеся в вашей системе: один - это Inout, а другой - Output. Вы можете найти их с помощью любого медиа-API (DirectSound, устаревший API).
Чтобы иметь возможность работать с PBAP и MAP, вам необходимо подключиться к вашему устройству через RFCOMM. WinSock или любой другой способ хорош.
Обратите внимание, что описанный выше метод работает только с драйверами Microsoft Bluetooth. Другие драйверы (BlueSoleil, Toshiba) имеют абсолютно разные API, поэтому вам нужно добавить их в свое приложение, если это необходимо для их поддержки.
Или вы можете просто взглянуть на BluetoothFramework