首页
学习
活动
专区
圈层
工具
发布

连接wifi
EN

Stack Overflow用户
提问于 2017-09-17 02:49:19
回答 1查看 950关注 0票数 0

嗨,目前,我正在工作的项目,需要连接到wifi,我正在使用libconnman。

一切进展顺利(启用/禁用wifi,wifi列表),直到我发现连接wifi的问题。因此,当我通过以下方式将服务连接到wifi时:

代码语言:javascript
复制
mCurrentNetworkService->setPassphrase(ui->linePassword->text());
mCurrentNetworkService->requestConnect();

发生一个错误,上面写着:“未注册”。我不知道会发生什么,因为自由自由没有给我任何线索。还是我错过了一步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 18:38:14

您必须首先注册一个“代理”,该代理可以响应来自connman守护进程的输入请求。下面是一个简单的例子。

代码语言:javascript
复制
#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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46260186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档