Q蓝牙BLE广告在ubuntuBlueZ上不起作用

问题描述

我今天尝试使用Qt宣传BluetoothLE服务。我从测试Bluetooth Low Energy Heart Rate Server Example开始,它在我的Android手机上工作正常。但是,在我的Ubuntu 18.04笔记本电脑上,我无法正常工作。

当我以root身份运行示例时,出现错误list = dict.get('result') for i in list: print(i.get("start")) print(i.get("word")) 。 启用调试消息后,我收到以下日志:

qt.bluetooth.bluez: received advertising error

有人知道所有这些错误消息是什么意思吗?
感谢您的帮助!

解决方法

我在英特尔 NUC 设备上尝试使用 https://github.com/nymea/nymea-networkmanager 时遇到了类似的问题。每当它尝试发出蓝牙 LE 命令时,我都会通过 btmon 看到“命令不允许”。

发出 hcitool cmd 0x03 0x000 会重置设备并让它开始做广告,但很快就会再次崩溃。似乎在 4.19 内核中引入了许多蓝牙更改,并导致 LE 系统调用出现问题。

我能够通过使用带有 4.15 内核的旧版 Ubuntu 使其工作。

这里有更多细节 https://github.com/nymea/nymea-networkmanager/issues/46