Иногда невозможно получить ответ от метода GetGattServicesAsync
с параметром BluetoothCacheMode.Cached
или BluetoothCacheMode.Uncached
.Только перезапуск Windows помогает повторно подключить устройство и получить службы от этого устройства.
Мы используем Windows.Devices.Bluetooth.dll
с .Net Framework 4.6.1 для создания библиотеки классов.ПК с Windows должен подключить устройство Bluetooth.
Шаги для воспроизведения проблемы:
- Обнаружение устройств с определенной услугой
- Вызовите метод
FromBluetoothAddressAsync
с Bluetooth-адресом устройства LE - Обнаружено устройство BluetoothLED
Сопряжение устройства LE с рабочим столом:
DeviceInformationPairing loPairingInf = poDevice.DeviceInformation.Pairing;
if (!loPairingInf.IsPaired)
{
DevicePairingKinds loConfirm = DevicePairingKinds.ConfirmOnly;
DevicePairingProtectionLevel loProtectionLevel = DevicePairingProtectionLevel.Default;
DeviceInformationCustomPairing loCustomPairing = loPairingInf.Custom;
}
Проверьте состояние соединения.Если статус подключен, вызовите метод GetGattServicesAsync(BluetoothCacheMode.Cached)
.Иногда невозможно получить ответ от GetGattServicesAsync
.Через 30 секунд мы отменяем задачу, удаляем BluetoothLEDevice
, отключаем и пытаемся повторно подключить устройство.Сбой переподключения, и только перезапуск Windows помогает установить соединение с файловым устройством.
ПК:
Dell Precision 5530
Адаптер Bluetooth Qualcomm QCA6174A
Windows 10 Enterprise (1803)
Версия 10.0.17134 Build 17134.590
LE Устройство:
Вопрос:
Можно ли избежать проблемы с GetGattServicesAsync?
Возможно, существует программный хак для повторного подключения файлового устройства послеОтмена GetGattServicesAsync без перезапуска Windows?