libconnman-qt 连接wifi
libconnman-qt connect to wifi
您好,目前我正在做一个需要连接到 wifi 的项目,我正在使用 libconnman-qt。
一切顺利(enable/disable wifi,wifi 列表),直到我发现无法连接到 wifi。因此,当我通过以下方式将服务连接到 wifi 时:
mCurrentNetworkService->setPassphrase(ui->linePassword->text());
mCurrentNetworkService->requestConnect();
出现错误:"Not Registered"。我不知道发生了什么,因为 lib 没有给我任何线索。或者我错过了哪一步?
您必须先注册一个 "agent" 来响应来自 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;
}
您好,目前我正在做一个需要连接到 wifi 的项目,我正在使用 libconnman-qt。
一切顺利(enable/disable wifi,wifi 列表),直到我发现无法连接到 wifi。因此,当我通过以下方式将服务连接到 wifi 时:
mCurrentNetworkService->setPassphrase(ui->linePassword->text());
mCurrentNetworkService->requestConnect();
出现错误:"Not Registered"。我不知道发生了什么,因为 lib 没有给我任何线索。或者我错过了哪一步?
您必须先注册一个 "agent" 来响应来自 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;
}