DeviceConnectionChangeTrigger - 值不在预期范围内

时间:2015-12-19 20:46:51

标签: c# bluetooth bluetooth-lowenergy uwp windows-10-universal

我正在为桌面和移动开发UWP应用。我喜欢使用DeviceConnectionChangeTrigger来识别我的BT设备何时在范围内,但是当我尝试使用它时,我无法注册后台任务,因为它保持返回System.ArgumentException"值不在预期范围内。 "执行"注册" BackgroundTaskBuilder的方法。

代码很简单

    var current = BackgroundExecutionManager.GetAccessStatus();
    if (current == BackgroundAccessStatus.Unspecified || current == BackgroundAccessStatus.Denied)
    {
      var result = await BackgroundExecutionManager.RequestAccessAsync();
      if (result == BackgroundAccessStatus.Denied || result == BackgroundAccessStatus.Unspecified)
        throw new Exception("You cannot register Access");
    }

    //I tested it with BT and BTLE device but no luck
    //var devices = await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector());
    var devices = await DeviceInformation.FindAllAsync(BluetoothDevice.GetDeviceSelector());
    var device = devices.FirstOrDefault();
    if (device == null) throw new Exception("Device not found");

    var trigger = await DeviceConnectionChangeTrigger.FromIdAsync(device.Id);
    //trigger.MaintainConnection = true;

    var builder = new BackgroundTaskBuilder
    {
      Name = "BluetoothConnectionWatcher",
      TaskEntryPoint = typeof(BluetoothConnectionWatcherTask).FullName
    };
    builder.SetTrigger(trigger);

    //error on next line!
    var r = builder.Register();

我的项目具有蓝牙功能,并且一项后台任务已注册蓝牙属性标记。

所有蓝牙功能都运行良好,我可以毫无问题地与设备通信。

我尝试了几种BT和BTLE设备,但对于所有这些设备,似乎我遇到了同样的问题。

我试过Windows 10的桌面版和移动版(两者都是最后的内部版本)。同样的问题。

通过代码返回的device.Id类似于"蓝牙#BART00:1a:7d:da:71:0a-fc:58:fa:4c:17:0a"对于我尝试的每个BT设备(当然根据设备改变了第二个MAC地址......)

有什么建议吗? 提前致谢

0 个答案:

没有答案