微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541修改配对密码后遇到的问题

CC2541修改配对密码后遇到的问题

时间:10-02 整理:3721RD 点击:

Hi,Yan:

我在更改密码之后调用了GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS, 0, NULL );跟踪函数调用的过程是成功的,但是现象不正确,具体如下一一描述,麻烦帮忙看一下各个过程是否都正确。

1、我使用LightBlue函数进行密码修改,当收到修改密码的命令时,读取修改密码的值,并调用GAPBondMgr_SetParameter( GAPBOND_DEFAULT_PASSCODE, sizeof ( uint32 ), &passkey);

2、然后调用GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS, 0, NULL );

3、出现的现象为:

        a、密码修改成功,但是需要我手机端在已配对列表中重新清除一下,新修改的密码才生效(而我想要的结果为修改完成后,下次重新连接上密码就生效,需要输入新密码才可以连接)。

        b、如果没有在手机端的已配对列表中重新清除一下,只是断开连接再重新连接一下,则我在对Characteristic重新写数据(只有写数据需要密码,读取不需要密码)的时候,则出现无法写入的现象,LightBlue的界面上一直提示正在写入,如下图所示,而我代码中写入操作无法运行到(打断点无法停下)。

麻烦帮忙解答一下是怎么回事,谢谢。

sawyer,

你的实验结果应该是正确的。

我没有像你一样做过,但是在iOS端应该需要清除设备才可以。

关于无法写入的问题,你的那个characteristic 是不是有GATT_PERMIT_AUTHEN_WRITE 属性?如果没有,那就说明iOS有限制,必须重新配对。。。

Hi,Yan:

是GATT_PERMIT_AUTHEN_WRITE 的属性。那在android上是不是有同样的问题呢?

sawyer,

是的。

这个是需要加密后才能写的属性。

Yan,

我知道这个是加密后才能写的属性,现在的情况是我在改过密码之后断开连接,再重新连接时去写的话不会提示我输入密码,必须手机端清除一次才会提示我输入密码。如果用户在使用的时候,发现密码泄露了,修改密码之后,必须自己手动在手机端清除一下新密码才正式生效,这个在用户体验上是不太好的。请问是否有方法改变这种情况呢?

sawyer,

在代码里,你的 pairMode 是 GAPBOND_PAIRING_MODE_INITIATE 的吗?改成这个再试试。

无论是GAPBOND_PAIRING_MODE_INITIATE还是GAPBOND_PAIRING_MODE_WAIT_FOR_REQ,都不可以。

Hi,Yan:

另外,关于蓝牙验证有个问题问您一下:苹果的MFI验证中针对iBeacon的验证是否是免费的?您那有没有相关的资料介绍呢?

sawyer,

MFi 对于iBeacon 的验证应该是免费的。

我这边没有相应的资料,你应该想办法从苹果那里看看:)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top