我创建了一个Android应用程序作为中心,我找到了一个gatt-server(github.com/Jumperr-labs/python-gatt-server)的实现,它是bluez的一部分。当我问的时候如果读取请求是来自服务器的特征值,则使用HCI ACL协议发送结果数据包,这是我所知道的不正确。我已经使用btmgmt将我的适配器设置为LE only模式,但我看到相同的结果.Am我错过了什么?
以下是从命令'btmgmt info'获取的当前适配器设置 “当前设置:有源可连接的广告安全连接”
这是Wireshark所展示的内容 Wireshark
答案 0 :(得分:1)
我不确切知道您在哪里看到这些ACL数据包,但BLE数据包确实是通过HCI以ACL数据包的形式发送的。
如果您看到连接使用Bluetooth Classic,您可以从Android端将connect参数中的transport参数设置为TRANSPORT_LE强制BLE。
答案 1 :(得分:0)
我发现某个地方,wireshark和hcidump在HCI级别进行分析而无法看到较低层。而且只要HCI BLE数据包作为ACL数据发送就可以了!它很好看!在较低层,您必须购买BLE嗅探器USB加密狗。