2017-09-17 22 views
0

現在、私はwifiに接続する必要があるプロジェクトに取り組んでおり、libconnman-qtを使用しています。libconnman-qt wifiに接続

Wi-Fiに接続する際に問題が見つかるまで、すべてがうまくいっています(Wi-Fiの有効/無効、Wi-Fiのリスト)。だから私は無線LANにサービスを接続します:

mCurrentNetworkService->setPassphrase(ui->linePassword->text()); 
mCurrentNetworkService->requestConnect(); 

「登録されていません」というエラーが発生します。私はlibが私のための手がかりを与えていないので、何が起こるのか分からない。それとも私が逃したステップがありますか?

答えて

0

まず、connmanデーモンからの入力要求に応答できる「エージェント」を登録する必要があります。ここに簡単な例があります。

#include <networkservice.h> 
#include <useragent.h> 

class Wifi : public QObject { 
    Q_OBJECT 
public: 
    Wifi(QObject *parent = 0) : 
     QObject(parent), m_agent(NULL), m_service(NULL) { 

     //Register an agent to handle requests from connmand 
     m_agent = new UserAgent(this); 

     //Connect to UserAgent signal 
     connect(m_agent, SIGNAL(userInputRequested(QString, QVariantMap)), 
       this, SLOT(agentRequestedUserInput(QString, QVariantMap))); 
    } 

    ~Wifi() {} 

public Q_SLOTS: 
    void agentRequestedUserInput(QString path, QVariantMap fields) { 
     Q_UNUSED(path) 
     QVariantMap reply; 
     reply.insert("Passphrase", QString("pass1234")); 
     m_agent->sendUserReply(reply); 
    } 

    void connectToService(QString servicePath) { 
     // Add logic to find NetworkService pointer for the service you will connect to 

     // pseudo code 
     // m_service = findService(servicePath); 

     m_service->requestConnect(); 
    } 

private: 
    UserAgent *m_agent; 
    NetworkService *m_service; 
}