Bluetooth Windows 10物联网蓝牙

Bluetooth Windows 10物联网蓝牙,bluetooth,windows-10-iot-core,Bluetooth,Windows 10 Iot Core,我在重新连接我的BLE设备时遇到问题 塞纳里奥,行得通 -可扩展设备未配对 -Pi引导并启动我的应用程序,查找BLE设备,配对并连接,接收数据 -启动Pi并启动我的应用程序,它不会像已经配对的那样配对,它连接良好并接收数据 塞纳里奥,那不行 -BLE设备不是成对的,也不是成对的,没关系 -如果我的BLE设备因断电或超出范围而断开连接,并通电或返回范围,Pi将重新连接并抛出: mscorlib.ni.dll中的“System.Exception” 指定的登录会话没有用户会话密钥。(HRESULT的

我在重新连接我的BLE设备时遇到问题

塞纳里奥,行得通 -可扩展设备未配对 -Pi引导并启动我的应用程序,查找BLE设备,配对并连接,接收数据 -启动Pi并启动我的应用程序,它不会像已经配对的那样配对,它连接良好并接收数据

塞纳里奥,那不行 -BLE设备不是成对的,也不是成对的,没关系 -如果我的BLE设备因断电或超出范围而断开连接,并通电或返回范围,Pi将重新连接并抛出: mscorlib.ni.dll中的“System.Exception” 指定的登录会话没有用户会话密钥。(HRESULT的例外:0x80070572)

如果尝试重新启动Pi,则在尝试执行时会抛出相同的消息:wait_readCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify)

唯一有效的方法是每次断开设备时,我都将其解开

这和这家伙的问题是一样的:

也许这里有人见过同样的问题并解决了它


谢谢

您收到此特定错误的原因几乎可以肯定是,BLE设备本身没有存储配对过程中协商的绑定信息。对于要重复使用的现有BLE配对,设备必须保持与其合作伙伴的连接,以便将来进行通信会话

开发者有时可以在他们(非Windows)的PC或手机应用程序中通过让PC或手机应用程序删除之前与已保留设备的配对,并在每次看到蓝牙设备时协商一个新配对来解决此设备的缺点。这是可能的,因为许多蓝牙设备都有一个静态PIN,配对时不需要交互,并且保持开放配对模式。因此,应用程序会在每次通信时创建一个新的设备配对。Mac BLE API不需要用户交互来进行配对和取消配对

但此解决方案在Windows BLE API下不可行,因为与常规蓝牙不同,蓝牙低能耗API在配对和取消配对“仪式”期间都需要用户交互。用户必须同意每次配对,并且必须同意每次取消配对。从用户体验的角度来看,这使得这个变通解决方案在Windows上不再适用。我的猜测是,BLE设备制造商没有存储这种连接


我们自己开发自己的BLE驱动程序,与自己的BLE板对话时遇到了这种情况;我们必须重新制作运行BLE设备的固件,因为虽然它可以在Mac OS和Android下使用上述方法工作,但Microsoft UWP上可用的BLE API需要在配对仪式期间进行用户交互。无论如何,这似乎是正确的做事方式

非常感谢,非常有用的回答。我在向HM11 ble模块(基于cc2540)发送数据时遇到问题,收到异常“来自HRESULT 0x80650003”。您的帖子解决了我的问题,我将设置从“不需要PIN码”更改为“身份验证和绑定”。这是所有网站上唯一有用的答案。@Vladimitsykunov我也遇到了这个问题,您是否从“不需要PIN码”到“身份验证和绑定”“在您的PC或蓝牙设备上?谢谢,我把蓝牙设备切换到了Auth和Bond,这帮了我很大的忙。但是win10仍然有很多bug和断开连接。使用外部BT加密狗可能会有所帮助,在Win10 8月更新中,BT核心也有一些变化@danielmetlitski@VladimirTsykunov谢谢另外,很奇怪,在Windows8.1上,所有的东西都可以工作——我只需要配对一次,之后就可以了。但在Windows8.1上,我在尝试第二次连接时遇到了异常。为什么在Windows 10而不是8.1上会出现问题?@VladimirTsykunov将蓝牙设备设置为“配对并验证”不会导致问题?该设备会认为它始终处于连接状态,当连接到iOS或Android时会出现问题吗?