我正在使用 Lollipop 5.1.1_r6 bluedroid 堆栈,并且在使用 HID 设备时遇到了奇怪的情况。我所做的第一步是通过 Android Settings->Bluetooth 菜单将 peer 与主机配对。
好吧,如果我先重新启动蓝牙服务,然后从对等方删除配对密钥,主机将无法与对等方重新连接并保留旧的配对密钥。但是,如果我在擦除对等点上的密钥之前不重新启动蓝牙服务,主机会成功重新连接到对等点。
我注意到这些情况之间的唯一区别是安全掩码为 0,以防从 NVRAM 加载密钥和
tBTA_SEC sec_mask = BTUI_HH_SECURITY; //0x0036
之后制作钥匙时
bt_status_t btif_hh_connect(bt_bdaddr_t *bd_addr)
功能。
我的问题是,即使对等方删除了其配对密钥并且用户在新尝试之前没有忘记主机的设置->蓝牙菜单中的对等点,主机是否有可能再次与同一个对等方重新连接?
这是 Lollipop 上标准 bt 堆栈的功能吗?
我的理解是,如果主机有绑定数据,它将尝试与同一个对等方建立新连接,但如果 SMP 失败或取决于堆栈版本,它应该放弃?
一说,连接成功后peer被列入白名单。