微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

配音Connman wifi连接Qt

如何解决配音Connman wifi连接Qt

我正在研究imx6,并且我正在尝试使用Qt应用程序通过Dbus连接到wifi网络。 该应用程序通过Dbus正确连接到connman,并且我正确接收了wifi服务。 问题是,当我尝试连接到Wiif网络时,我发现了此错误

接口“ net.connman.Service”上具有签名“ ss”的“方法”“连接”不存在

我在Qt应用程序中用于连接到wifi网络的代码是:

QDBusInterface *iface =
new QDBusInterface("net.connman","/net/connman/technology/wifi","net.connman.Service",QDBusConnection::systemBus());

if (!iface->isValid())
{
    qDebug() << Q_FUNC_INFO << "Fail to connect to the Connman Technology interface: " << QDBusConnection::systemBus().lastError().message();
}



QDBusReply<void> reply = iface->call("Connect","/net/connman/service/wifi_88da1a4db14c_41684179_managed_psk","password");

if (!reply.isValid())
{
    qDebug() << "Call connect result: " << reply.error().message();
}

当我尝试使用connmanctl的shell命令连接到wifi网络时,它就像是一种魅力。

解决方法

我在imx6上遇到了同样的问题。对我有效的解决方案是在调用 Connect 方法之前为网络创建配置文件。

该文件应位于/ var / lib / connman中,名称为 [SSID] .config 。 文件内容:

[service_wifi_PUT_SERVICE_NAME]
Name = PUT_SSID
Type = wifi
Passphrase = PUT_PASSWORD

并尝试以这种方式连接:

QDBusInterface *iface =  new QDBusInterface("net.connman",QString{"/net/connman/service/%1"}.arg(SERVICE_NAME),"net.connman.Service",QDBusConnection::systemBus());
QDBusReply<void> reply = iface->call("Connect");
if(!reply.isValid() {
...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。