0

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

Wi-Fiへの接続に問題が見つかるまで、すべてがうまくいきます(Wi-Fiの有効化/無効化、Wi-Fiのリスト)。したがって、次の方法でサービスをwifiに接続すると:

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

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

4

1 に答える 1

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;
}
于 2017-10-10T18:38:14.400 に答える