Доступ к профилю для 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)

Мы уже пробовали:

  1. Обновление драйверов
  2. Пытался удалить установку много раз
  3. Используется 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