C# 在Windows Phone 8.1上连接和断开蓝牙BLE

C# 在Windows Phone 8.1上连接和断开蓝牙BLE,c#,windows-phone-8.1,bluetooth-lowenergy,C#,Windows Phone 8.1,Bluetooth Lowenergy,我有一个由WindowsPhone8.1和Android手机操作的设备。由于在任何时候只有一部手机可以使用该设备,我们需要在使用完毕后立即断开与该设备的连接 在Android上,我们使用的库可以连接和断开连接,但在Windows Phone 8.1上,我似乎只能连接,我找不到方法告诉手机断开与设备的连接。我必须手动将手机从设备上断开 是否有人能够断开配对蓝牙设备的连接?如果是,如何进行 谢谢大家! 如果您通过进行通信,Dispose()调用将断开连接 根据您的代码,语句可能是最优雅的方式。在Ga

我有一个由WindowsPhone8.1和Android手机操作的设备。由于在任何时候只有一部手机可以使用该设备,我们需要在使用完毕后立即断开与该设备的连接

在Android上,我们使用的库可以连接和断开连接,但在Windows Phone 8.1上,我似乎只能连接,我找不到方法告诉手机断开与设备的连接。我必须手动将手机从设备上断开

是否有人能够断开配对蓝牙设备的连接?如果是,如何进行


谢谢大家!

如果您通过进行通信,Dispose()调用将断开连接

根据您的代码,语句可能是最优雅的方式。

在GattDeviceService上调用Dispose(),确保所有GattCharacteristic对象都为null,并且不要从GattCharacteristic注销ValueChanged事件处理程序。
最后调用GC.Collect()(Microsoft告知这是WP8.1中的一个bug,应该在Win10中修复)

这可能对win8应用程序没有帮助,但对于任何使用UWP应用程序的人来说,本文有助于配对和取消配对:

其要点是调用DeviceInformation.Pairing.UnpairAsync方法


调用该方法会弹出windows对话框,询问用户是否有权取消绑定设备。

是否可以编辑您的问题,以显示您正在使用的连接到BLE设备的代码?我不确定这是否可行。不幸的是,WindowsBLEAPI非常有限,没有Android(或者,我猜是iOS)那么功能齐全。我还没有在手机上这样做,但8.1 WinRT API是相同的AFAIK,您所得到的只是
GattDevice
。您可以关闭它,但Windows自己管理连接。关闭设备所做的一切就是断开您自己的进程与Windows设备的连接,而不是与实际的BLE设备的连接。这正是我所担心的,Peter…:(不,我使用的是GattDevice项目:(在Windows 10上,它现在正在工作。仍然没有WP8.1的好解决方案。您对此有任何参考资料吗?这不是一个正式的解决方案。这只是我们在数小时调试后使它工作的方法。相关: