Maemo(Meego)平台上进行Qt开发



在Maemo平台进行过开发的同学们都知道Maemo平台的很多API都是通过Dbus来提供的。我们通常需要通过DBus来请求一个服务。
那么如何通过Qt 来请求Maemo平台上提供的服务呢? 答案就是利用QtDBus

举个例子来说,下面的DBus请求是用来提供打电话的服务(http://wiki.maemo.org/Phone_control):
dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:"$NUMBER" uint32:0

dbus-send 是maemo平台发送DBus请求的一个工具,现在我们改用QtDBus来完成发送请求。

1. 首先实例化一个QDBusInterface变量:

 QDBusInterface *   phinterface = new QDBusInterface("com.nokia.csd.Call","/com/nokia/csd/call","com.nokia.csd.Call",QDBusConnection::systemBus(),this);

对比一下QDBusInterface 的声明:QDBusInterface ( const QString & service, const QString & path, const QString & interface , const QDBusConnection & connection, QObject * parent )

你就可以知道各个参数的意义了,不过有些服务可能是用sessionBus.

2. 接下来就是发送请求了:

phinterface->call("CreateWith",yournum,0);

call的声明为call ( const QString & method, const QVariant & arg1, ...),再对比下前面那个dbus-send 命令,聪明的你肯定知道怎么做了。

很简单,一共只有两个步骤,请求其他的服务照着做就是了。

你可能感兴趣的:(qt,meego,dbus)