我们目前在做的是一个方案是没有按键或者屏幕等输入设备的,要求APP输入密码与BLE从机配对后方可读取BLE设备的数据。
我目前是这么设置的:
uint32 passkey = 666555; // passkey "666555" uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE; uint8 mitm = TRUE; uint8 ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT; uint8 bonding = TRUE; GAPBondMgr_SetParameter( GAPBOND_DEFAULT_PASSCODE, sizeof ( uint32 ), &passkey ); GAPBondMgr_SetParameter( GAPBOND_PAIRING_MODE, sizeof ( uint8 ), &pairMode ); GAPBondMgr_SetParameter( GAPBOND_MITM_PROTECTION, sizeof ( uint8 ), &mitm ); GAPBondMgr_SetParameter( GAPBOND_IO_CAPABILITIES, sizeof ( uint8 ), &ioCap ); GAPBondMgr_SetParameter( GAPBOND_BONDING_ENABLED, sizeof ( uint8 ), &bonding );
用LightBlue进行测试发现,LightBlue不会提示输入密码直接就能连接并获取相关数据,是不是GATT里面的特征值还要做其他配置?
而且我用Android的系统蓝牙可以提示输入密码配对,但是输入"666555",发现密码错误,无法配对,我通过串口将passkey的值打出来发现也不是666555,
关于这个密码我有点疑惑,如果passkey = 0 代表密码为"000000",那passkey =123 是不是代表密码为"123000"??
还望能为我解答