如何在windows iot核心中提供自定义配对的确认

时间:2016-06-30 11:13:27

标签: c# bluetooth windows-10-iot-core raspberry-pi3

我正在尝试使用在Windows IoT Core上运行的Raspberry Pi 3进行自定义设备配对。 github上为设备枚举和自定义配对提供的官方示例(场景9)https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DeviceEnumerationAndPairing/cs 在我们可以进行用户交互的本地机器上正常工作。

但是如何在windows iot核心上做到这一点。甚至示例代码都说

  

//如果在桌面或移动设备上运行,Windows本身将弹出确认对话框作为“同意”的一部分

     

//如果这是“Windows IoT核心”的应用程序,其中没有Windows同意用户体验,您可能需要提供自己的确认。

private async void PairingRequestedHandler(
        DeviceInformationCustomPairing sender,
        DevicePairingRequestedEventArgs args)
    {
        switch (args.PairingKind)
        {
            case DevicePairingKinds.ConfirmOnly:
            // Windows itself will pop the confirmation dialog as part of "consent" 
            //if this is running on Desktop or Mobile
            // If this is an App for 'Windows IoT Core' where there is no Windows 
            //Consent UX, you may want to provide your own confirmation.

                args.Accept();
                break;

我如何提供自己的确认?请帮忙

2 个答案:

答案 0 :(得分:1)

确认是可选的,仅在桌面和移动设备上完成,作为系统级用户体验的一部分。通过调用Accept方法,配对将继续进行。

如果您希望提供确认,那么事情就变得棘手,因为物联网核心目前不支持MessageDialoghttps://developer.microsoft.com/en-us/windows/iot/win10/unavailableapis

作为替代方案,其他人建议creating your own UserControlusing a Flyout来模仿体验。

答案 1 :(得分:0)

官方IoTCoreDefaultApp正在使用"是"的可见性属性和"不"按钮来模仿行为。

enter image description here

查看https://github.com/ms-iot/samples/tree/develop/IoTCoreDefaultApp中的示例代码。

特别注意

private async void DisplayMessagePanel(string confirmationMessage, MessageType messageType)

来自https://github.com/ms-iot/samples/blob/develop/IoTCoreDefaultApp/IoTCoreDefaultApp/Views/Settings.xaml.cs中的第536~562行。

这是您可以在物联网应用中使用的技巧。