控制器不会停留在嗅探模式

controller won't stay in sniff mode

我在 linux 上使用 bluez 堆栈,需要将从属控制器置于嗅探模式。我可以通过使用 hcitool 发出命令来启动嗅探模式:hcitool -i hci0 cmd 0x02 0x0003 0x00 0x01 0x12 0x00 0x12 0x00 0x01 0x00 0x01 0x00。问题是,在我在此套接字上发送任何数据后,从站总是立即发出退出嗅探模式命令。谁能告诉我为什么会发生这种情况以及如何阻止控制器任意退出嗅探模式?

任一设备都可以随时退出嗅探模式。这是经典蓝牙定义方式的一部分。我猜你的目标设备的控制器有一个策略,可以在特定数据大小的有效负载下自动恢复活动模式。

如果你想要一个具有嗅探特性的持久连接,我建议实现一个低能量的ACL。

这最终成为 linux 蓝牙驱动程序的默认参数问题。