低功耗蓝牙配对与非配对通信

问题描述 投票:1回答:1

据我了解,无论是否配对,都可以建立蓝牙低功耗通信。这是在移动开发的背景下,Android更具体,但我相信iOS或多或少都是一样的。

是否有人会选择一个而不是另一个?那目的是什么?什么是技术上被认为是配对通信和什么被认为是不成对的通信?

我已经考虑了一些差异,甚至做了几个与BLE相关的演示应用,但我还没有找到一个明确的解释,如果我正在做的事实上被认为是配对的。

编辑:

我问这个问题的原因是我相信我希望加密不成对的BLE连接。在某些情况下,基本上是我的主要用例,移动设备可能希望在一天中的不同时间随机连接到几个不同的外围设备,并且物理上接受配对请求的过程似乎是不必要的并且非常耗时。 “随机”我的意思是,如果我有十几个散落在我的公寓周围,我正在一个人走路,而我个人并不确切地知道哪一个没有进行实际检查。我不是第一次在房间里走路而且必须手动配对每个设备,如果我有100个设备那将是疯了。请注意,这些设备不一定必须同时连接,但可以。另请注意,我理解这通常不是移动用例的典型外设的主要用例。

bluetooth bluetooth-lowenergy android-bluetooth ios-bluetooth
1个回答
4
投票

以下是一些差异:

如果您绑定设备,链接将变为加密,因此它变得更加安全。因此,“配对”通信基本上意味着链接被加密,而设备“知道”它所谈论的内容。

远程设备还会学习您手机的IRK(身份解析密钥),以便稍后识别手机。默认情况下,手机每15分钟左右旋转一次蓝牙设备地址。在不知道IRK的情况下,外围设备无法识别手机。

如果设备是绑定的,那么好处是远程设备的GATT数据库被缓存,这意味着在下次连接时,您不必等待很长时间才能完成服务发现。

在Android上,由于API缺少“地址类型”位(公共/随机地址),因此在没有首次扫描的情况下通过蓝牙设备地址连接被破坏。如果Android“猜测”错误,您将连接到错误的设备,因此失败。但是,如果设备已绑定,则会根据蓝牙设备地址存储和查找地址类型,这使其按预期工作。因此,如果您计划在启动时在后台自动连接到外围设备,那么绑定设备是个好主意。

一个小细节是客户端特性配置描述符值也应该由GATT服务器存储,并在绑定设备重新连接后恢复,因此它不必重写描述符值。

某些蓝牙配置文件需要绑定,例如HID(至少在iOS和Android上)。

© www.soinside.com 2019 - 2024. All rights reserved.