我们不清楚bluez5中leadv命令的功能。 连接到设备并再次断开连接后,无法重新连接到同一设备。只有在再次调用leadv之后才可以重新连接。
我们已经使用各种平台(raspberrypi,x86)和各种版本的bluez5(5.15,5.16,5.18,5.21)和来自broadcom和csr的bt加密狗重现了这种行为。
是否可以在没有广告的情况下多次重新连接?
蓝牙与gatt服务器正在运行
我们发出了以下命令
hciconfig hci0 up
hciconfig hci0 noscan
hciconfig hci0 name foo
hciconfig hci0 leadv 0
答案 0 :(得分:3)
我遇到了完全相同的问题。
有趣的是,在断开连接期间' hcidump'没有显示bluez向蓝牙控制器发出的任何命令,这表明它关闭了广告。
我正在使用此解决方法在设备断开连接时重新启用广告:
sudo dbus-monitor --system --profile | grep --line-buffered --only-matching InterfacesRemoved | xargs -n1 -I % sudo /home/pi/bluez/bluez-5.25/tools/hciconfig hci0 leadv 0
说明:
答案 1 :(得分:0)
事实证明,实际上可以自动重新启用广告,但它似乎只适用于选定的bluez /内核组合。我们最终使用bluez 5.21和raspberry pi内核3.16 for broadcom和csr加密狗。我们还没有尝试过其他组合,因为我们之后不久就切换到自定义硬件(TI CC2451)。