btframework 如何与加密配对和绑定(蓝牙 LE 菜鸟问题)
Posted
技术标签:
【中文标题】btframework 如何与加密配对和绑定(蓝牙 LE 菜鸟问题)【英文标题】:btframework how to pair & bond with encryption (Bluetooth LE noob question) 【发布时间】:2020-08-31 14:57:21 【问题描述】:我在尝试使用 btframework (www.btframework.com) 配对和绑定蓝牙 LE 设备时遇到问题,特别是 Nonin Wristox 3150 BLE
设备状态的文档...
3150 BLE 使用 Just Works 结合支持的配对方法。配对成功后,采集器应启动绑定,3150 BLE 将保存与采集器关联的长期绑定密钥。 3150 BLE 需要 要绑定的收集器以加密连接。粘合完成后,收集器应 加密连接。
我正在努力弄清楚我应该做些什么来建立联系。实际上,我已经设法将其连接一次,这就是我完成所有开发的方式,但是当我再次尝试时,我所做的似乎并没有奏效。使用 BTFramework 演示应用程序,他们的“GattClient” - 我可以发现我的设备没有问题,但是当我点击“连接”时,它连接到设备,错误代码为 0(表示成功),但设备在一秒钟后断开连接.我猜这是因为我还没有完成上述所有配对。
所以我使用了他们的“蓝牙管理器”来尝试配对。我将 MITM 设置为“ProtectionRequiredBonding”,IOCap 设置为“DisplayOnly”,BLE 保护设置为“Encryption”,然后单击“Pair”。
这实际上工作了一次 - 我已配对,然后我能够使用 GattClient 连接并获取服务、特征并查看特征变化。
但是我无法重复练习。当我使用 Windows 删除设备时,我回到了之前可以连接但被设备断开连接的状态,我再次尝试了上述操作。不过现在好像不行了。我现在尝试连接时通常会收到错误 0x005105C(找不到设备)。在窗口设置设备页面中,状态似乎在“已连接”和“已配对”之间随机变化,有时设备本身刚刚开始报告连接错误。 (该设备对导致错误的原因不是很清楚)。它总是报告配对本身是成功的
还有这个:
如果加密过程失败,很可能是收集器或 3150 BLE 已删除其绑定密钥。发生这种情况时,3150 BLE 将删除其绑定密钥(如果存在)。建议收集器也删除其绑定密钥(如果存在)。
这是我需要做的事情吗? btframework 是怎么做到的?
【问题讨论】:
【参考方案1】:这似乎是因为您的设备具有随机 MAC,每次连接时都会发生变化。断开连接。
所以正确的顺序是:
-
发现设备。
与之配对。
连接。
做你需要的。
断开连接。
取消配对(通过您的代码,而不是通过 Windows 设备管理器。)
如果需要再次连接,请转到第 1 步,以便使用新 MAC 找到设备。
如果您有任何问题,如果您通过电子邮件 (support@btframework.com) 与我们联系,可以更快地得到答复。
【讨论】:
你的库(btframework)是否支持windows 10上的“绑定” 是的,确实如此。事实上,Windows 平台仅支持绑定(使用链接密钥存储)。我的意思是 Windows 在配对过程中总是存储链接密钥。【参考方案2】:只是为了跟进这件事,结果证明这是我的设备特有的一个怪癖。它只允许在放入电池后的前 2 分钟进行配对。如果我取出电池并重新装上,我可以与设备配对。
【讨论】:
以上是关于btframework 如何与加密配对和绑定(蓝牙 LE 菜鸟问题)的主要内容,如果未能解决你的问题,请参考以下文章