我想使用connman dbus服务连接到受wifi保护的网络。我能够使用dbus-send命令连接到开放网络,但对于受保护的网络,我无法直接连接,我尝试使用路径/测试/代理注册代理,但我不知道在哪里指定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
然后我尝试使用之前的connect命令进行连接,但它没有连接,我也不知道在哪里指定ssid ans passphrase来连接。 有人可以帮我解决这个问题。
我将如何在c中实现,我使用gdbus实现调用connman通过dbus公开的方法,如下所示, proxy = gdbus-> createProxyObject(" net.connman"," /"," net.connman.Manager"); return_s = gdbus-> callMethod(proxy," GetServices",NULL);
以便连接到受保护的网络。