在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来完成发送请求。html
1. 首先实例化一个QDBusInterface变量:session
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 )ui
你就能够知道各个参数的意义了,不过有些服务多是用sessionBus.this
2. 接下来就是发送请求了:spa
phinterface->call("CreateWith",yournum,0);.net
call的声明为call ( const QString & method, const QVariant & arg1, ...),再对比下前面那个dbus-send 命令,聪明的你确定知道怎么作了。htm
很简单,一共只有两个步骤,请求其余的服务照着作就是了。开发