成功绑定配对过某个手机后(绑定过多台设备),BLE端如何删除某个手机配对绑定时保存的LTK?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们的第一个建议是,在所有连接终止后进行擦除。
如果是针对删除某个手机配对绑定的LTK,设备得有一个管理程序才能做到删除某个。

这个索引区间存储的是LTK吗?
如果是,协议栈是按照BLE_NVID_GAP_BOND_START自增的顺序去存储不同手机的LTK?
设备得有一个管理程序才能做到删除某个。
假设是自增存储,应用程序将当前绑定的手机与BOND_INDEX联系起来存储到用户的BLE_NVID_CUST_START,您说的是这个意思吗?
是的,目前看来是无法对应起来的,LTK没有一个唯一的特征值,比如说某个手机的Mac地址,这个东西可以是唯一的。
如果一定要操作,那么设备端首先要提供移除LTK的API出来,其次,要知道LTK与手机的对应关系,不然我们不知道删除哪个,因此,想要移除某个时间点配对绑定的手机LTK,还没有现实的方法。
所以一般来说,我们是在手机上忽略与蓝牙设备的连接;或者,手机与它连上了,有个专门的APP管理,能够看到它之前和哪些手机连接过。
我会继续跟进,后续如果有新的方法会回复您的。
那直接删绑定记录可以达到您的目的吗?
GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS, NULL, NULL),用这个API可以清除所有绑定信息。
GAPBOND_ERASE_SINGLEBOND是删除单个纪录
GAPBOND_ERASE_ALLBONDS是删除所有记录
根据目前了解到的信息,您可以通过GAPBOND_ERASE_SINGLEBOND删除某个LTK,对应关系是通过地址对应的,您得知道手机的蓝牙地址。
衍生问题您可以开一个新帖子,因为后面可能也会有其他用户遇到和您相同的问题,新开的帖子会方便他们更容易检索到,谢谢。