
BLE(26x2)作为Responder,手机作为initiator, 图中安全请求是怎样发起的?是协议栈自动发送还是用户应用层发送?如果是应用层发送,怎么做?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE(26x2)作为Responder,手机作为initiator, 图中安全请求是怎样发起的?是协议栈自动发送还是用户应用层发送?如果是应用层发送,怎么做?
您好,
Phase 1:在这个阶段,Responder可以请求开始配对过程,initiator通过向 Responder发送 pairing request 来启动配对过程,然后 Responder以 pairing response 进行响应。配对请求和配对响应消息代表每个设备支持的特性以及每个设备的安全要求,两者通过交换对方信息协商出双方都支持的特性进行加密。
因为是 optional是可选择的,所以是要看从哪个方向选择的。

如果配对是由主机发起,则主机向从机发起配对请求。如果是由从机发起,则从机先向主机发出一个Security Request,请求发起安全管理流程,主机收到后再发起配对请求,如上图的Figure 2.1 LE Pairing Phases所示。
配对请求中包含以下内容:
主从两端经过配对请求和响应以后,就能够获知对方的IO能力和是否需要认证,从而选择一个合适的配对方法。
Q:图中安全请求是怎样发起的?
A:当从机检测到需要进行安全连接时,协议栈会自动发送一个安全请求给主机。
而用户应用层通常用于操作和处理安全请求后的结果,例如验证配对信息,处理加密等。
BLE(26x2)作为Responder,
我现在有一点迷惑,
条件一:BLE作为responder
条件二:根据阶段一,您需要Security Request,Security Request是从responder发出的
现是 BLE发起配对请求
逻辑上没问题呀
您能再给我解释一下吗?我有点困惑,谢谢
不好意思,我问题没有表述清楚。
条件一:BLE作为responder
条件二:根据阶段一,您需要Security Request,Security Request是从responder发出的
这两点已经实现,且没有问题。
我的疑问是从设备发完Security Request后,主设备应该发送pairing request,配对请求是主设备发起的,但是我看手机上提示,感觉是从设备发出的配对请求,感觉这块冲突。

取消配对然后重新试一下
将配对模式设置为 GAPBOND_PAIRING_MODE_NO_PAIRING 时,BLE 堆栈会自动拒绝任何配对尝试。
当配对模式设置为 GAPBOND_PAIRING_MODE_WAIT_FOR_REQ 时,外设可以配置为等待来自中央设备的配对请求。 选择此配对模式后,GAPBondMgr 将根据其他 GAPBondMgr 配置的参数自动响应配对响应。
Initiate a pairing request:
为了在外设角色设备上启动配对过程,GAPBOND_PAIRING_MODE_INITIATE 将在 GAPBondMgr 被告知连接已形成后不久发送一个从属安全请求。 对于中央角色设备,如果设备之前已配对/绑定,GAPBOND_PAIRING_MODE_INITIATE 将发送配对请求或请求链路层加密链路。