UWP DeviceWatcher вызывает добавленное событие для выключенного устройства
Я создал наблюдатель устройств:
DeviceInformation.CreateWatcher(BluetoothLEDevice.GetDeviceSelectorFromDeviceName("..."));
Если устройство bluetooth, которое я ищу, выключено, сразу же возникает добавленное событие, за которым следует удаленное событие. Если он включен, я получаю только добавленное событие.
Является ли устройство каким-то образом кэшируемым, если оно было ранее найдено наблюдателем, и это то, что заставляет добавленное событие возникать, несмотря на выключение питания? Есть ли способ предотвратить это?
1 ответ:
Является ли устройство каким-то образом кэшируемым, если оно было ранее найдено наблюдателем, и это то, что заставляет добавленное событие возникать, несмотря на то, что оно выключено? Есть ли способ предотвратить это?
Устройство не будет кэшироваться наблюдателем, перечисление
DeviceWatcher
происходит с системного уровня, и потребуется немного времени, чтобы проверить изменение состояния устройства Bluetooth. Это не мгновенная реакция.Если вы хотите проверить
DeviceWatcher
, пожалуйста, обратитесь к следующему шаги.
- откройте Системные настройки -- > устройства-->добавить Bluetooth или другое устройство-->Bluetooth.
Начните свой
DeviceWatcher
. Вы обнаружите, что информация об устройстве быстро отображается в виде списка. Потому что источник данных представления списка происходит из коллекции системного уровня.Остановите
DeviceWatcher
, а затем остановите устройство bluetooth, пока вы не найдете информацию об устройстве bluetooth в разделе " Добавить устройство" окно.Начните свой
DeviceWatcher
. Вы обнаружите, что информация о вашем устройстве bluetooth не будет отображаться снова, и приложение не вызовет событие, как вы упомянулиПримечание
Для третьего шага, если вы запустите
DeviceWatcher
до того, как информация об устройстве bluetooth исчезнет в списке "Добавить устройство", то порядок выполнения событий будет таким же, как вы упомянули.