我有两个BLE设备配置为外围设备,简单的静态配对程序和Android手机作为客户端。 1)peripheral_1地址= 0xCECECECECE,带有静态密钥123456,设备名称= Garden,appearance = generic tag。 2)peripheral_2 address = 0xC1C1C1C1C1,带有静态密钥123456,Device name = Garden,appearance = generic tag。 两个外围设备IO都配置为仅显示。
我尝试通过nrfConnect应用程序连接到peripheral_1,我弹出提供密码,在给出正确的密钥后,设备被绑定并且一切都很好。 与peripheral_2重复相同的程序,并且一切都很好。
现在出现了真正的问题。在与peripheral_2断开连接之后,我尝试连接到peripheral_1,我再次弹出以输入已粘合设备的密码,为什么? 此外,在输入密钥后,我无法读取任何特征值,除非我断开连接并重新连接到peripheral_1。为什么呢?
现在我重复使用peripheral_2并且我看到相同的行为(客户端要求再次输入密钥)。
我认为应该根据BT地址唯一生成STK / LTK并存储在客户端的数据库中。
假设我将其中一个外设的外观更改为“unknown”,那么我看到客户端在绑定后没有要求密钥再次重新输入。只有这种组合 外观有效(“未知”与“”)。 任何意见,建议都非常感谢。