Windows 10 UWP 中失去连接后如何以编程方式连接到配对的蓝牙设备
How to programmatically connect to paired Bluetooth device once connection is lost in Windows 10 UWP
我有一个 windows 10 UWP 应用程序,它能够以编程方式与蓝牙 LE 设备配对。配对成功后,也会建立与设备的连接。
如果在某个时候设备断开连接,我将无法从 LE 设备读取任何 GattCharacteristics。我可以检查连接是否存在,但无法重新建立连接。
DeviceInformation deviceInfo = await DeviceInformation.CreateFromIdAsync("deviceId", "additionalProperties", "DeviceInformationKind");
if(deviceInfo.ConnectionStatus != BluetoothConnectionStatus.Connected) { // re-establish the connection }
谢谢。
问题
蓝牙 LE 设备未存储在配对过程中创建的绑定信息。绑定信息允许两个先前配对的设备在断开连接时启动新连接。
Windows10 解
使用 in-app pairing APIs,您可以通过编程告诉系统与蓝牙 LE 设备配对(听起来您已经在这样做了)。要解决上述绑定问题,必须将 DevicePairingProtectionLevel
设置为 None
。因此,您的应用内配对代码可能如下所示:
var result = await someDevice.Pairing.PairAsync(DevicePairingProtectionLevel.None);
将 DevicePairingProtectionLevel
设置为 None
告诉系统忽略绑定信息,只寻找匹配的设备。
外围解决方案
或者,如果您可以访问外围设备的固件,则可以将其设置为记住绑定信息。那么您当前在 Windows 10 上的配对呼叫应该可以工作。
我有一个 windows 10 UWP 应用程序,它能够以编程方式与蓝牙 LE 设备配对。配对成功后,也会建立与设备的连接。
如果在某个时候设备断开连接,我将无法从 LE 设备读取任何 GattCharacteristics。我可以检查连接是否存在,但无法重新建立连接。
DeviceInformation deviceInfo = await DeviceInformation.CreateFromIdAsync("deviceId", "additionalProperties", "DeviceInformationKind");
if(deviceInfo.ConnectionStatus != BluetoothConnectionStatus.Connected) { // re-establish the connection }
谢谢。
问题
蓝牙 LE 设备未存储在配对过程中创建的绑定信息。绑定信息允许两个先前配对的设备在断开连接时启动新连接。
Windows10 解
使用 in-app pairing APIs,您可以通过编程告诉系统与蓝牙 LE 设备配对(听起来您已经在这样做了)。要解决上述绑定问题,必须将 DevicePairingProtectionLevel
设置为 None
。因此,您的应用内配对代码可能如下所示:
var result = await someDevice.Pairing.PairAsync(DevicePairingProtectionLevel.None);
将 DevicePairingProtectionLevel
设置为 None
告诉系统忽略绑定信息,只寻找匹配的设备。
外围解决方案
或者,如果您可以访问外围设备的固件,则可以将其设置为记住绑定信息。那么您当前在 Windows 10 上的配对呼叫应该可以工作。