我想使用 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 中?没有任何作用!真是令人沮丧!