问题描述
我今天尝试使用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