我想使用 connman dbus 服务连接到受 wifi 保护的网络。我可以使用 dbus-send 命令连接到开放网络,但对于受保护的网络,我无法直接连接,我尝试使用路径 /test/agent 注册代理,但我不知道在哪里指定 ssid 和密码我必须连接的接入点。
我使用 dbus-send 命令扫描网络, dbus-send --system --dest=net.connman --print-reply /net/connman/technology/wifi net.connman.Technology.Scan
我这样做是为了获取服务 dbus-send --system --print-reply --dest=net.connman / net.connman.Manager.GetServices
这将产生巨大的输出,我在其中 grep 以仅获取可用网络的对象路径
我这样做是为了连接到网络,但这仅适用于开放网络
dbus-send --system --print-reply --dest=net.connman /net/connman/service/wifi_008092751818_646c696e6b_managed_none net.connman.Service.Connect
据我搜索,要连接到受密码保护的接入点(wpa psk 网络),我必须注册代理,我使用的是,
dbus-send --system --print-reply --dest=net.connman / net.connman.Manager.RegisterAgent objpath:/test/agent
然后我尝试使用前面的连接命令进行连接,但它没有连接,我也不知道在哪里指定要连接的 ssid 和密码短语。有人可以帮我解决这个问题。
以及我将如何在c中实现,我使用gdbus实现调用connman在dbus上暴露的方法,proxy = gdbus->createProxyObject("net.connman", "/", "net.connman.Manager") ; return_s = gdbus->callMethod(proxy,"GetServices", NULL);
所以要连接到受保护的网络。