关于L2CAP连接不成功问题的原因及解决方法:
原因:由于客户在app_config.c文件masterSecurity安全参数设置了gSecurityMode_1_Level_4_c,但是在建立L2CAP连接的时候又还没蓝牙连接加密到gSecurityMode_1_Level_4_c的等级,所以L2CAP连接会一直报错0x08。
解决方法:
1、如果要在蓝牙一连接上之后就开始建立L2CAP连接,则需要把主机和从机两个工程的app_config.c文件的masterSecurity安全参数的sercurityModelLevel设置到gSecurityMode_1_Level_1_c;
2、如果masterSecurity安全参数的sercurityModelLevel值大于gSecurityMode_1_Level_1_c,则应该等到蓝牙连接加密完成后再去做L2CAP连接(即等到GAP收到gConnEvtPairingComplete_c事件后再发起L2CAP连接)
关于蓝牙配对OOB的建议:
用L2CAP的方式传输OOB数据进行OOB蓝牙配对连接不是真正意义的OOB加密,L2CAP还是属于蓝牙的通信范围,不是OOB,如果要使用OOB蓝牙配对,建议用非蓝牙技术传输OOB数据。