我希望使用QT和DBUS来挂载文件系统。我使用以下代码片段订阅了“DeviceAdded”信号:
void DBusWatcher::deviceAdded(const QDBusObjectPath &o) {
QDBusMessage call = QDBusMessage::createMethodCall("org.freedesktop.UDisks", o.path(), "org.freedesktop.DBus.Properties", "GetAll");
QList<QVariant> args;
args.append("org.freedesktop.UDisks.Device");
call.setArguments(args);
QDBusPendingReply<QVariantMap> reply = DBusConnection::systemBus().asyncCall(call);
reply.waitForFinished();
QVariantMap map = reply.value();
// ...
}
这很好用。我的问题是,我该如何安装它?我只有类似于这样的东西 - 它根本不起作用 - 而且没有任何错误。
QDBusMessage call = QDBusMessage::createMethodCall("org.freedesktop.UDisks", "dont know what to put here!", "org.freedesktop.UDisks.Device", "FilesystemMount");
现在,我应该在QDBusConnection::systemBus()上使用哪个操作:call、asyncCall还是callWithCallback?在createMethodCall的第二个参数中应该放什么?什么都不起作用!真的很令人沮丧!