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



我有一个Windows 10 UWP应用程序,可以通过编程方式与蓝牙LE设备配对。配对成功后,还建立了与设备的连接。

如果在某个时候,该设备被断开,我将无法从LE设备中读取任何gattcharacterics。我可以检查连接是否存在,但是我无法重新建立连接。

DeviceInformation deviceInfo = await DeviceInformation.CreateFromIdAsync("deviceId", "additionalProperties", "DeviceInformationKind");
if(deviceInfo.ConnectionStatus != BluetoothConnectionStatus.Connected) { // re-establish the connection }

谢谢。

问题

蓝牙LE设备没有存储配对过程中创建的键合信息。粘结信息允许两个先前配对的设备在断开连接的情况下启动新连接。

Windows 10解决方案

使用应用内配对API,您可以通过编程方式告诉系统与蓝牙LE设备配对(听起来您已经在执行此操作)。要解决上述键合问题,必须将DevicePairingProtectionLevel设置为None。因此,您的应用内配对代码看起来像:

var result = await someDevice.Pairing.PairAsync(DevicePairingProtectionLevel.None);

DevicePairingProtectionLevel设置为None告诉系统以忽略键合信息并寻找匹配的设备。

外围解决方案

另外,如果您可以访问外围的固件,则可以将其设置为记住键合信息。然后,您当前在Windows 10上的配对电话应该起作用。

最新更新