不管是做为peripheral发起广播,还是做为central发起扫描,要绑定的话,要等连接成功了由peripheral或者central发起配对请求,其中配对参数时面有携带是否绑定,是否防止中间人攻击等变量可以配置;
要连接之后才能发起配对请求,配对仅仅是发送一些配对参数,跟交换数据没有什么关系
配对是发起配对参数(包括是否绑定,是否防止中间人攻击以及IO能力等参数)告诉对等设备,如果配对参数中有绑定,那么双方就会根据IO口能力,LL层分配一个LTK秘钥给双方并保存至Flash中,当再连接的时候拿出这个秘钥解析,解析正确就进行链路加密,之所以绑定后会快速建立连接是因为省去了验证的流程
加密是在LL层那里加密,都是协议栈帮你处理了,APP层不要做什么动作
GAP那里设置的加密是链路的加密,就是两个BLE设备通讯即使被第三方捉包,那些数据也是经过加密的密文不是明文,而特征值那个是权限,作用跟那个GAP层的差不多,只是特征值的是你读写的时候会触发认证请求