Ошибка в Windows Bluetooth, оставляя метод GetGattServicesAsync - PullRequest
1 голос
/ 09 апреля 2019

Иногда невозможно получить ответ от метода GetGattServicesAsync с параметром BluetoothCacheMode.Cached или BluetoothCacheMode.Uncached.Только перезапуск Windows помогает повторно подключить устройство и получить службы от этого устройства.

Мы используем Windows.Devices.Bluetooth.dll с .Net Framework 4.6.1 для создания библиотеки классов.ПК с Windows должен подключить устройство Bluetooth.

Шаги для воспроизведения проблемы:

  1. Обнаружение устройств с определенной услугой
  2. Вызовите метод FromBluetoothAddressAsync с Bluetooth-адресом устройства LE
  3. Обнаружено устройство BluetoothLED
  4. Сопряжение устройства LE с рабочим столом:

    DeviceInformationPairing loPairingInf = poDevice.DeviceInformation.Pairing;
    if (!loPairingInf.IsPaired)
    {
        DevicePairingKinds loConfirm = DevicePairingKinds.ConfirmOnly;
        DevicePairingProtectionLevel loProtectionLevel = DevicePairingProtectionLevel.Default;
        DeviceInformationCustomPairing loCustomPairing = loPairingInf.Custom;
    }
    
  5. Проверьте состояние соединения.Если статус подключен, вызовите метод GetGattServicesAsync(BluetoothCacheMode.Cached).Иногда невозможно получить ответ от GetGattServicesAsync.Через 30 секунд мы отменяем задачу, удаляем BluetoothLEDevice, отключаем и пытаемся повторно подключить устройство.Сбой переподключения, и только перезапуск Windows помогает установить соединение с файловым устройством.

ПК:

  • Dell Precision 5530

  • Адаптер Bluetooth Qualcomm QCA6174A

  • Windows 10 Enterprise (1803)

  • Версия 10.0.17134 Build 17134.590

LE Устройство:

  • Bluetooth 4.2

Вопрос:

  • Можно ли избежать проблемы с GetGattServicesAsync?

  • Возможно, существует программный хак для повторного подключения файлового устройства послеОтмена GetGattServicesAsync без перезапуска Windows?

...