如何在不配对的情况下读取 BLE 广告包

How to read BLE Advertising Packets without pairing

我需要从 BLE 传感器读取广告数据包,这些传感器每 5 秒在广告数据包中广播一次温度。制造商告诉我数据包将是一个 GAP 扫描响应事件,我不需要连接到设备来读取这个数据包。

当我 运行 sudo hcitool lescan

时传感器的 MAC 地址出现

但是,当我 运行 sudo gatttool -I -t random -b 06:09:16:41:87:DB 发生这种情况时:

[06:09:16:41:87:DB][LE]> connect Attempting to connect to 06:09:16:41:87:DB Error: connect error: Connection refused (111)

另外,当我 运行 sudo gatttool -b 06:09:16:41:87:DB -I 并连接时,我得到: Error: connect error: Transport endpoint is not connected (107)

如果我无法通过 gatttool 建立蓝牙连接,我该如何读取这个广告包?

好吧,如果你想收听广告事件,那么你不应该连接,因为广告是广播的。你应该只是扫描。如果您在单独的终端中同时使用调试工具 "hcitool lescan" 和 "sudo btmon",那么您应该会看到扫描响应数据。