2

我有一个运行在 DBus 上的守护进程,它提供启动应用程序的服务。我想将两个字符串传递给此服务 API(appPath、appArgs)。我已经用 DBus 注册了服务和对象路径。

我的服务方法被调用,但我没有在我的服务中正确接收参数()。这就是我从我的适配器类中做的事情,

call(QDBus::Block, QLatin1String("LaunchApp"), appPath, appArgs);

这就是我的界面的样子。

"  <interface name=\"com.company.AppLauncher\" >\n"
"    <method name=\"LaunchApp\">\n"
"    <arg name=\"appPath\" type=\"s\" direction=\"in\"/>\n"
"    <arg name=\"appArgs\" type=\"s\" direction=\"in\"/>\n"
"    </method> \n"

我如何实现这一目标?

4

1 回答 1

1

我用它来调用具有不同类型参数的方法:

QString appPath("somepath");
QString appArgs("somargs");

QList<QVariant> argumentList;
QVariant argument;
argument.setValue(appPath);
argumentList.append(argument);
argument.setValue(appArgs);
argumentList.append(argument);

callWithArgumentList(QDBus::Block,"LaunchApp",argumentList);
于 2011-05-09T23:59:15.527 回答