在SimpleBLEPeripheral的char 5 的读属性中,要求认证,手机连接会要求输入密码,进行配对。
现在我想实现 在对 char 5 进行读的时候,自动配对,手机端无需再输入密码。
我进行了 如下设置:
uint32 passkey = 0; // passkey "000000"
uint8 pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ;
uint8 mitm = FALSE;
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 );
然后发现,在对 char 5 进行读的时候,会不停弹出有求配对的界面;
请问,想实现我要的功能,该如何修改?
Yan:
Hui,
在simpleGATTProfile.c 中,第314行,把GATT_PERMIT_AUTHEN_READ 改成 GATT_PERMIT_READ 呗。
Hui Chen4:
回复 Yan:
Hi Yan,
我想要实现的是,在对char 5 读的时候,要获取连接手机的 IRK,但是 不对 char 5 操作时,就不需要。 我理解为IRK是配对的时候,从机端才会获得。所以,我需要在对 char 5 读的时候 要求 手机端配对,但又不需要输入密码, 该怎么修改呢? 读的属性 就应该是 GATT_PERMIT_AUTHEN_READ 吧?