connmanctl command(RegisterAgent) is not working via dbus

687 views Asked by At

I can connect to open wifi via "connmanctl" using dbus via Qt,. I would like to connect secured wife using connmanctl via dbus. there is an API to regiser an agent( interactive mode, to enter passphrase) called "RegisterAgent(object path)" , In this, I am not sure what is mean by object path. I have tried object path with ""/net/connman/technology/wifi", but it was not working. I think I am wrong on something. I have added Qt compiled code below. Can some one help me to connect to secured network through connmanctl via dbus ?

//------------tocker.h------------------
#ifndef TOCKER_H
#define TOCKER_H

#include <QObject>
#include <QDBusMessage>
#include <QDBusError>


class Tocker : public QObject
{
    Q_OBJECT
public:
    explicit Tocker(QObject *parent = 0);

signals:

public slots:
    void onAgentRegisterRequested(QDBusMessage);
    void onErrorResponse(QDBusError);
};

#endif // TOCKER_H
//----------------------

//talker.cpp................
#include <QDBusInterface>
#include <QDBusConnection>
#include <QList>
#include <QVariant>
#include <QtDebug>
#include "tocker.h"\


Tocker::Tocker(QObject *parent) : QObject(parent)
{
    QDBusInterface interfaceObj("net.connman", "/", "net.connman.Manager", QDBusConnection::systemBus());
    bool isScucess = false;
    do
    {
    if(interfaceObj.isValid())
    {
        QList<QVariant> params;
        params << "/net/connman/technology/wifi"; //I am not sure is this path is correct

        if( interfaceObj.callWithCallback("RegisterAgent", params, this, SLOT(onAgentRegisterRequestedd(QDBusMessage)), SLOT(onErrorResponse(QDBusError))  ))
        {
            qDebug()<< Q_FUNC_INFO << "callWithCallback is success";
            isScucess = true;
        }
        else
        {
            isScucess = false;
        }
        break;
    }
    }
    while(false);
    if( !isScucess )
    {
        qDebug()<< Q_FUNC_INFO << interfaceObj.lastError().message();
    }
    else
    {
        qDebug() << Q_FUNC_INFO << "Callback is success.";
    }
}

void Tocker::onAgentRegisterRequested(QDBusMessage msg)
{
    qDebug()<< Q_FUNC_INFO << msg;
}

void Tocker::onErrorResponse(QDBusError errorMsg )
{
     qDebug()<< Q_FUNC_INFO << errorMsg;
}



-----------main.cpp........
#include <QCoreApplication>
#include "tocker.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Tocker tocker;
    return a.exec();
}
0

There are 0 answers