TI中文支持网
TI专业的中文技术问题搜集分享网站

CC254x鉴权和配对问题

向各位大侠请教一个问题:我想让我的BLE从设备具备连接配对,和读特征值要求鉴权读。就是当iPhone连接设备时,弹出输密码的界面,然后读特征值时也要弹出输密码的界面。目前我实现了连接时弹框输密码的功能,但是设定了GATT_PERMIT_AUTHEN_READ权限的特征值,读的时候,不会要求输密码。是不是因为在连接的时候已经配过对了?要怎样才能实现iPhone在两个地方都弹出输密码的?

Yan:

hi xiaoming,

是的,在连接的时候已经配对过了。

GATT_PERMIT_AUTHEN_READ 只是说读这个值要求链路是经过鉴权,也就是配对过的, 而并不会在读的时候要求你输密码。

Xiaoming Lan:

回复 Yan:

Yan,谢谢。那是不是就是说没办法做到,两个地方同时要求输密码?

Xiaoming Lan:

回复 Xiaoming Lan:

把特征值设置成GATT_PERMIT_AUTHOR_READ,行不行呢?

又或者有没有什么办法,让连接配完对后,让两边都“忘记”自己已经配过对,读的时候,再发起一次配对?

Xiaoming Lan:

回复 Xiaoming Lan:

1. 我在程序中GAP Bond Manger配置如下: 

// Setup the GAP Bond Manager  {    uint32 passkey = 0; // passkey "000000"    uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE;    uint8 mitm = TRUE;    uint8 ioCap = GAPBOND_IO_CAP_DISPLAY_YES_NO;    uint8 bonding = FALSE;    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 );  }

2.在xxxProfile_ReadAttrCB的读特征值的回调函数中加入下面一段代码

 if ( gattPermitAuthenRead( pAttr->permissions ) )  {    // Insufficient authorization    return ( ATT_ERR_INSUFFICIENT_AUTHOR );  }  3.可以实现iphone与设备连接时要求输密码配对,读取设置为GATT_PERMIT_AUTHEN_READ的特征值时,会弹出要是密码配对的框,但是当输入正确的密码后,还是不断重复弹出要求配对的框。请问一下这是这么回事呀?要怎样改才能输入正确密码一次就能读到数据?

赞(0)
未经允许不得转载:TI中文支持网 » CC254x鉴权和配对问题
分享到: 更多 (0)