2

アプリケーションを起動するためのサービスを提供する DBus で実行されているデーモンがあります。このサービス API に 2 つの文字列 (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 に答える