C # UWP BluetoothLEDevice.FromIdAsync перестает работать - PullRequest
0 голосов
/ 20 мая 2018

Я разрабатываю приложение Bluetooth с использованием UWP-фреймворка в Visual Studio 2017. Все идет хорошо благодаря примеру Microsoft (хорошо написан пример C # SDK для BluetoothLE).

Во время моего четвертого дня разработки APIBluetoothLEDevice.FromIdAsync в строке:

bluetoothLeDevice = await 
    BluetoothLEDevice.FromIdAsync(bleDeviceToConnect.Id); 

Больше не работает, ни в моем приложении, ни в исходном образце от Microsoft, который я использую в качестве примера (я ничего не касаюсь).

Я не понимаю, поскольку ничего не изменил (в свойствах моего проекта нет ни одного обновления Windows на моем компьютере).Когда я вызываю функцию, она просто никогда не возвращается.

Я попробовал свой объект Bluetooth, используемый с каким-то приложением для смартфона, и мое оборудование работает хорошо.

Вызов сделан в попытке, но исключение не составляет catch, функция просто никогда не возвращается (и я жду некоторое время, у меня даже нет таймаута).

Вы виделиэтот?Любой вклад в то, как это решить?

Я застрял и не могу идти дальше, потому что сейчас я вообще не могу подключиться ни к какому объекту ...

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Это может произойти из-за безопасности COM (как вы, возможно, знаете, UWPAPI на основе WinRTYY, который работает над COM). Это должно помочь.

0 голосов
/ 21 мая 2018

Привет всем и спасибо за вашу помощь в этом.Я получил снимок на другом компьютере, и он работает просто отлично.Сегодня утром я дважды проверил и обнаружил, что даже Widnows не может подключиться ни к чему через Bluetooth (я пробовал с Bluetooth Speaker, который я обычно использую).Это была проблема с драйвером, я не знаю, как это происходит, но мой компьютерный драйвер просто перестал работать, и я добавил, чтобы переустановить его.

0 голосов
/ 20 мая 2018

Если ваш код и пример кода имеют одну и ту же проблему, единственными причинами может быть то, что ваше устройство недоступно.
Оно недоступно или даже выключено или уже подключено.
Это также можетЕсли вы используете deviceManager или deviceWatcher, ваша ОС предоставляет устаревшую информацию.Для BluetoothLE Windows DeviceManager и Watcher - это не что иное, как проблема.

Windows иногда сохраняет информацию о сопряжении и статус соединения, даже если устройство недоступно или выключено.
Много раз вам приходится удалять ии заново добавьте ваше устройство в настройках, чтобы сделать его доступным снова или требуется перезагрузка.
Чтобы избавить вас от всех этих неприятностей, я советую вам использовать AdWatchWatch.
Если ваше устройство найдено в AdWatchWatch.знаю, что оно доступно и подключаемо, и вам не нужно добавлять ваше BLE-устройство в настройках.
При необходимости приведу простой пример.

...