Bluez以编程方式删除单个设备的BLE绑定信息

时间:2017-07-24 17:57:06

标签: linux bluetooth-lowenergy bluez

我正在尝试将gatt连接到BLE服务器设备,该设备在连接后不保留绑定信息。在Android上,以编程方式“忘记”服务器绑定密钥是相当简单的。在linux上,我唯一可以理解的是,重要的是重新启动蓝牙服务或者物理移除并重新插入我的BLE加密狗。

我理想地寻找一种方法从链接到-lbluetooth的程序中删除单个设备的绑定。不太理想的是系统调用,它可以在不弹跳蓝牙的情况下移除单个设备的绑定。

我也正在寻找任何有关为什么粘合失败的原因,如果一个,但不是两个设备都保留粘合信息。似乎重新绑定比不连接更好。

1 个答案:

答案 0 :(得分:0)

有趣的是,我还需要更改连接间隔。当我打电话给hci_open()和hci_le_create_conn()时,我需要删除客户端上的债券。我希望这有助于某人。

dd = hci_open_dev(dev_id);
if (dd < 0) {
    perror("Could not open HCI device");
    return -1;
}

if (hci_le_create_conn(dd, interval, window, initiator_filter, peer_bdaddr_type,
    bdaddr, own_bdaddr_type, min_interval, max_interval, latency, supervision_timeout,
    min_ce_length, max_ce_length, &handle, 25000) < 0) {
    perror("HCI Connection failed!");
} else {
    printf("HCI connection interval updated: handle = %d\n", handle);
}

hci_close_dev(dd);