Существует большая разница между классом "DeviceWatcher" и классом "BluetoothLEAdirectWatcher".
DeviceWacher находится на системном уровне; Это означает, что вы должны сначала добавить устройство в настройках Windows, прежде чем его можно будет найти.
Это также означает, что устройство всегда присутствует в Windows.Devices.Enumeration, если вы не удалите его из настроек Windows.
Наблюдателю за устройством требуется много времени.
Также, чтобы сделать хорошо работающее приложение, вам нужно реализовать все добавленные, удаленные и обновленные события.
получать уведомления при добавлении, удалении или обновлении устройства.
Если приложение обрабатывает только добавленное событие,
обновление не будет получено, если устройство будет добавлено в систему после завершения начального перечисления устройств.
BluetoothLEAdvertWatcher прослушивает только те устройства BLe, которые отправляют рекламные объявления и находятся в пределах досягаемости.
Если вы активируете scanMode, наблюдатель пытается получить всю информацию об устройстве, такую как имя, возможности, адрес ble,
Услуги рекламы полезной нагрузки и т.д ..
При установке пассивного режима scanModeer прослушивает только те устройства, которые используют имя и Ble-адрес, что быстрее.
Время сканирования зависит только от количества доступных устройств и их рекламного интервала.
OutOfRangeTimeout ссылается на BluetoothSignalStrengthFilter, который решает, недоступно ли устройство.
Что касается времени на отключение:
API-интерфейсы устройств Bluetooth LE не обеспечивают прямой контроль над подключением к устройству.
Вместо этого, Bleutooth-стек отключит устройство через одну секунду, если на него не осталось ни единой ссылки.
Поэтому вы должны использовать таймер, чтобы установить свое время, закрыть и утилизировать устройство!