【发布时间】:2013-08-30 07:17:01
【问题描述】:
我开始在 Qt 中使用 DBus 和蓝牙。我想开发一个脚本,它只会通过 DBus 调用方法并得到回复。部分代码在这里(实际上是主要部分):
QString hostname("00:07:80:60:CE:22");
QDBusConnection bus = QDBusConnection::sessionBus();
QDBusInterface interface("org.bluez", "/", "Manager", bus, 0);
qDebug()<<"is valid: "<<interface.isValid()<<interface.lastError();
interface.lastError() 给出以下错误:
QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "名称 org.bluez 不是由任何 .service 文件提供的")
我安装了 bluez 和 dbus。我可以通过命令搜索蓝牙设备。
我还尝试了命令 sudo bluetoothd -d -n 并得到了这个: D-Bus 设置失败:名称已在使用中 bluetoothd[21952]:无法上 D-Bus
有谁知道可能是什么问题?
【问题讨论】:
-
你是否从 dbus 命令得到响应,试试这个命令,如果没有响应意味着 bluez 没有注册到 dbus 命令:dbus-send --system --type=method_call --print-reply -- dest=org.bluez "/" org.bluez.Manager.ListAdapters
-
接口名称不对?试试这样:QDBusInterface interface("org.bluez", "/", "org.bluez.Manager", bus, 0);
标签: c++ qt bluetooth dbus bluez