背景任务注册代码如下:
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服务 背景。确保您已声明了Devicececapanity and Task 在您的清单中键入"蓝牙",并且该应用程序已 授予对此设备的访问。
这仅发生在构建计算机上安装的创建者更新上,还针对创建者更新SDK。在更新SDK和构建机器之前,这效果很好。
我们在Windows 10 Mobile上与UWP应用程序遇到了同样的问题。
我们将Windows 10 Mobile更新为构建10.0.15230.0,然后删除该应用程序(在手机上手动(并再次安装。现在它可以正常工作。我们也安装了SDK的最后版本,但我认为可以跳过此步骤。
在您清单的兼容性部分中,添加此信息:
<Capabilities>
<DeviceCapability Name="bluetooth" />
</Capabilities>
在您的代码样本中没有看到它。可能是您需要从GattDeviceservice上的UX线程调用RequestAccessAsync
,该线程在注册触发器之前包含特征。