据我了解,低功耗蓝牙通信可以建立或不建立配对。这是在移动开发的背景下,Android更具体,但我相信iOS或多或少是相同的。
在某些情况下,有人会选择一个吗?目的是什么?从技术上讲,什么是配对通信?什么是非配对通信?
我已经研究了一些差异,甚至制作了一些与BLE相关的仅演示应用程序,但是我没有找到明确的解释来说明我所做的工作是否真正被视为配对。
编辑:
我问这个问题的原因是,我认为我正在寻找加密未配对的BLE连接的方法。在某些情况下,本质上是我的主要用例,移动设备可能希望在一整天的不同时间随机连接到几个不同的外围设备,而物理上接受配对请求的过程似乎是不必要的,并且非常耗时。 “随机”是指如果我的公寓周围散落着十几个人,而我个人不知道到底是哪一个,而无需亲自检查。我不需要第一次走在房间里,而不必手动配对每台设备,如果我有100台设备,那会很疯狂。请注意,这些设备不一定必须同时连接,但可以同时连接。另外请注意,我知道这通常不是典型的移动用例外围设备的主要用例。
答案 0 :(得分:4)
有一些区别:
如果绑定设备,则链接将被加密,因此变得更加安全。因此,“成对”通信基本上意味着对链接进行加密,再加上设备“知道”它在说什么。
远程设备还会学习您手机的IRK(身份解析密钥),以后可用于识别手机。默认情况下,手机每15分钟左右旋转一次蓝牙设备地址。在不知道IRK的情况下,外围设备无法识别电话。
如果绑定了设备,则很好的是,将缓存远程设备的GATT db,这意味着在下一次连接时,您无需等待很长时间即可完成服务发现。
在Android上,由于API缺少“地址类型”位(公共/随机地址),因此未经蓝牙扫描就无法通过蓝牙设备地址进行连接的情况已中断。如果Android“猜测”错误,则您将连接到错误的设备,因此会失败。但是,如果绑定了设备,则会根据蓝牙设备地址存储和查找地址类型,这将使其按预期工作。因此,例如,如果您打算在启动时在后台自动连接到外围设备,则最好绑定设备。
一个小细节是,客户端特征配置描述符值也应该由GATT服务器存储,并在绑定设备重新连接后恢复,这样就不必重写描述符值。
某些蓝牙配置文件需要绑定,例如HID(至少在iOS和Android上)。