GattDeviceService.FromIdAsync() иногда возвращает нольC#

Место общения программистов C#
Ответить
Anonymous
 GattDeviceService.FromIdAsync() иногда возвращает ноль

Сообщение Anonymous »

Я пытаюсь подключиться к устройству BLE с помощью приложения WPF с UWP.
Я столкнулся со странной проблемой, когда GattDeviceService.FromIdAsync() иногда возвращает значение null.
Обычно, когда я впервые запускаю свое приложение, оно извлекает объект, и все идет нормально — оно ищет устройство, пытается подключиться и т. д. р>
Однако, если я запускаю его снова, он обычно (хотя и не всегда, заметьте) возвращает ноль.

Код: Выделить всё

var deviceCollect = await DeviceInformation.FindAllAsync(GattDeviceService.GetDeviceSelectorFromUuid(myServiceId));

var device = deviceCollect.FirstOrDefault(d => d.Name == deviceName);
if (device == null)
{
return false;
}

var service = await GattDeviceService.FromIdAsync(device.Id);
Это проблема, поскольку если пользователь пытается подключиться, но устройство выключено или находится вне зоны действия, несмотря на обнаружение службы, оно правильно сообщает ему, что устройство не подключено. . Если затем они включат устройство и попытаются еще раз, на этот раз услуга будет нулевой, поэтому она не сможет подключиться (т. е. характеристики доступа и т. д.). Почти всегда это можно исправить, закрыв и перезапустив приложение, но я не хочу просить их об этом.
Я проверил идентификатор, передаваемый в функцию, и он одинаково между моментами успеха и моментами возврата нуля.
Почему он ведет себя таким образом? Есть ли какой-то кеш или настройка, которую я могу очистить, которая «сбросит» его или заставит его делать то, что он делает при перезапуске приложения?
Этот вопрос отличается от GattDeviceService.FromIdAsync возвращает значение null - хотя в этом случае он всегда возвращает значение null, в моем случае я иногда могу получить значение ответа, а иногда нет.

Подробнее здесь: https://stackoverflow.com/questions/793 ... turns-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»