我正在尝试使用在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;
我如何提供自己的确认?请帮忙
答案 0 :(得分:1)
确认是可选的,仅在桌面和移动设备上完成,作为系统级用户体验的一部分。通过调用Accept方法,配对将继续进行。
如果您希望提供确认,那么事情就变得棘手,因为物联网核心目前不支持MessageDialog:https://developer.microsoft.com/en-us/windows/iot/win10/unavailableapis
作为替代方案,其他人建议creating your own UserControl或using a Flyout来模仿体验。
答案 1 :(得分:0)
官方IoTCoreDefaultApp正在使用"是"的可见性属性和"不"按钮来模仿行为。
查看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行。
这是您可以在物联网应用中使用的技巧。