Не удается зарегистрировать фокусную задачу GattCharacteristicNotificationTrigger после обновления для авторов

Код регистрации фоновой задачи выглядит следующим образом:

var builder = new BackgroundTaskBuilder();
builder.Name = name;
builder.TaskEntryPoint = typeof(BackgroundTaskClass).FullName;
var trigger = new GattCharacteristicNotificationTrigger(characteristic);
builder.SetTrigger(trigger);
btr = builder.Register();

Запись в манифесте:

<Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTaskNS.BackgroundTaskClass">
  <BackgroundTasks>
    <Task Type="deviceConnectionChange" />
    <Task Type="bluetooth" />
  </BackgroundTasks>
</Extension>

Метод Register() вызывает эту ошибку:

Доступ запрещен.

В вашем приложении нет разрешения использовать службу Gatt в задний план. Убедитесь, что вы объявили DeviceCapability и Task Введите "bluetooth" в ваш манифест и что приложение было доступ к этому устройству.

Это происходит только при обновлении Creators Update, установленном на машине сборки, а также для таргетинга на SDK Creators Update. Это хорошо работало, прежде чем мы обновили SDK и машину сборки.

Ответ 1

У нас была та же проблема с UWP-приложением на Windows 10 mobile.

Мы обновили Windows 10 для создания 10.0.15230.0, затем удалили приложение (вручную на телефоне) и снова установили его. Теперь он работает нормально. Также мы установили последнюю версию SDK, но я думаю, что этот шаг можно пропустить.

Ответ 2

В разделе совместимости вашего манифеста добавьте следующее:

<Capabilities>
   <DeviceCapability Name="bluetooth" />
</Capabilities>

Ответ 3

Не видел его в вашем примере кода. Возможно, вам нужно вызвать RequestAccessAsync из потока UX в GattDeviceService, который содержит характеристику перед регистрацией вашего триггера.