gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:03:37 27 4
gpt4 key购买 nike

据我了解,低功耗蓝牙通信可以在配对或不配对的情况下建立。这是在移动开发的背景下,更具体地说是 Android,但我相信 iOS 或多或少是相同的。

是否存在人们会选择其中之一而不是另一个的情况?目的是什么?从技术上讲,什么是配对通信,什么是非配对通信?

我已经涉足了一些差异,甚至制作了一些与 BLE 相关的仅演示应用程序,但我还没有找到明确的解释,看看我所做的是否实际上被认为是配对的。

编辑:

我问这个问题的原因是我相信我希望加密未配对的 BLE 连接。在某些情况下,本质上是我的主要用例,移动设备可能想要在一天中的不同时间随机连接到多个不同的外围设备,并且物理上接受配对请求的过程似乎是不必要的并且相当耗时。我所说的“随机”是指,如果我的公寓周围散布着十几个,并且我个人在不亲自检查的情况下不知道到底是哪一个,那么我就路过其中一个。我不知道第一次走进房间要做什么,并且必须手动配对每个设备,如果我有 100 个设备,那将是疯狂的。请注意,这些设备不一定必须同时连接,但可以。另请注意,据我所知,这通常不是典型外围设备到移动用例的主要用例。

最佳答案

以下是一些差异:

如果您绑定(bind)设备,链接将被加密,因此变得更加安全。因此,“配对”通信基本上意味着链接是加密的,而且设备“知道”它正在对话的内容。

远程设备还会学习您手机的 IRK(身份解析 key ),稍后可用于识别手机。默认情况下,手机每 15 分钟左右轮换一次蓝牙设备地址。如果不知道 IRK,外设就无法识别手机。

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

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

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

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

关于低功耗蓝牙配对与未配对通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55230324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com