连接bluez后继续广告

continue advertising after connection bluez

我已经使用 hcitool 在 bluez 中设置了广告,设备按预期播放。

设置完成如下:

#advertising
sudo hcitool -i hci0 cmd 0x08 0x0008 18 02 01 06 02 0a 00 11 07 9e ca dc 24 0e e5 a9 e0 93 f3 a3 b5 01 00 40 6e 00 00 00 00 00 00 00
#scan response
sudo hcitool -i hci0 cmd 0x08 0x0009 0d 0c 09 6f 6f
#setup advertising interval
sudo hcitool -i hci0 cmd 0x08 0x0006 80 02 c0 03 00 00 00 00 00 00 00 00 00 07 00
#turn advertising on
sudo hcitool -i hci0 cmd 0x08 0x000a 01

连接设备后,广告消失了。我如何继续投放广告?

我做了一个反复调用 sudo hcitool -i hci0 cmd 0x08 0x000a 01 的解决方法。

另一个问题是如何使用 d-bus 接口设置上面的广告。

ps。 在 Bluetooth specification 5.0 (Core_v5.0.pdf), 7.8.5 LE Set Advertising Parameters command p.1321

中找到了很多信息

大多数 stacks/implementations(包括 BlueZ)会在设备状态从广告切换到接受传入连接时自动关闭广告。这样做的原因是,根据堆栈 Link 层状态(请参见下图,蓝牙规范 v5.1,第 6 卷,B 部分,第 1.1 节:Link 层状态),设备的状态应从 Advertising 更改为 Connected,因为设备不能同时处于两种不同的状态。

但是,一旦建立连接,您就可以像手动那样重新开始投放广告。请查看下面的答案以获取更多信息:-

希望对您有所帮助。