没有用户引脚输入的无头UWP蓝牙配对

时间:2019-09-25 00:00:03

标签: c# uwp bluetooth headless windows-10-iot-core

我目前正在构建一个运行在Windows 10 IoT核心版上的无头UWP应用。我需要能够通过蓝牙(RFCOMM)将移动设备连接到信息亭以收集数据。我需要能够从移动设备启动配对。

我已经尝试了所有UWP Bluetooth sample apps,但主要是尝试了 Device Enumeration and Pairing C# sample -特别是方案9-自定义设备配对。我可以使用大头针成功配对到带头UWP应用程序,但无法与无头UWP应用程序成功配对-尝试启动配对时,我得到“失败”结果或“身份验证超时”结果。

在没有UI的情况下,一对与无头UWP应用配对如何获取密码?对于每次配对尝试,我都可以使用UWP应用程序使用硬编码的引脚而不是随机的引脚,但是我不确定这是否可行?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码。当有传入的配对请求时,将调用handlerUpdater。

            handlerUpdated = new TypedEventHandler<DeviceWatcher, DeviceInformationUpdate>(async (watcher, deviceInfoUpdate) =>
            {
                // Since we have the collection databound to a UI element, we need to update the collection on the UI thread.
                await MainPage.Current.UIThreadDispatcher.RunAsync(CoreDispatcherPriority.Low, async () =>
                {
                    // Find the corresponding updated DeviceInformation in the collection and pass the update object
                    // to the Update method of the existing DeviceInformation. This automatically updates the object
                    // for us.
                    foreach (BluetoothDeviceInformationDisplay deviceInfoDisp in bluetoothDeviceObservableCollection)
                    {
                        if (deviceInfoDisp.Id == deviceInfoUpdate.Id)
                        {
                            if (deviceInfoDisp.DeviceInformation.Pairing.CanPair)
                            {
                                await deviceInfoDisp.DeviceInformation.Pairing.Custom.PairAsync(DevicePairingKinds.ConfirmOnly);
                            }

                            deviceInfoDisp.Update(deviceInfoUpdate);
                            break;
                        }
                    }
                });
            });
            deviceWatcher.Updated += handlerUpdated;