如何在Windows 10 UWP中丢失连接后以编程方式连接到配对的蓝牙设备

Vik*_*s C 5 c# bluetooth-lowenergy windows-10-universal

我有一个Windows 10 UWP应用程序,能够以编程方式与蓝牙LE设备配对.配对成功后,还会建立与设备的连接.

如果在某些时候,设备断开连接,我无法从LE设备读取任何GattCharacteristics.我能够检查连接是否存在,但我无法重新建立连接.

DeviceInformation deviceInfo = await DeviceInformation.CreateFromIdAsync("deviceId", "additionalProperties", "DeviceInformationKind");

if(deviceInfo.ConnectionStatus != BluetoothConnectionStatus.Connected) { // re-establish the connection }
Run Code Online (Sandbox Code Playgroud)

谢谢.

Car*_*ter 7

问题

蓝牙LE设备不存储在配对过程中创建的绑定信息.绑定信息允许两个先前配对的设备在断开连接时启动新连接.

Windows 10解决方案

使用应用内配对API,您可以通过编程方式告诉系统与蓝牙LE设备配对(听起来您已经这样做了).要解决上述绑定问题,DevicePairingProtectionLevel必须将其设置为None.因此,您的应用内配对代码可能如下所示:

var result = await someDevice.Pairing.PairAsync(DevicePairingProtectionLevel.None);
Run Code Online (Sandbox Code Playgroud)

设置DevicePairingProtectionLevelto None告诉系统忽略绑定信息,只需查找匹配的设备.

外围解决方案

或者,如果您可以访问外围设备的固件,则可以将其设置为记住绑定信息.然后你在Windows 10上的当前配对调用应该工作.