如何使用dbus和NetworkManager激活连接

问题描述 投票:0回答:1

根据之前的SO问题,我仍在通过Java应用程序中的dbus控制NetworkManager。我想激活一个现有的无线连接,所以这是我的代码,尽可能地消除了不讲究的意思:

DBusInterface iface = ...;
var nmIface = (NetworkManagerIface) instance.getRemoteObject(NetworkManagerIface._NM_IFACE, NetworkManagerIface._NM_PATH, NetworkManagerIface.class);
System.out.println("Attempting connection to " + iface.getObjectPath());
var result = nmIface.ActivateConnection(new DBusPath(iface.getObjectPath()), new DBusPath("/"), new DBusPath("/"));
System.out.println("Activate Connection " + result.getPath());

其中NetworkManagerIfacehere。这样就可以正常运行并打印:

Attempting connection to /org/freedesktop/NetworkManager/Settings/4
Activate Connection /org/freedesktop/NetworkManager/ActiveConnection/4

因此,似乎它对ActivateConnection的调用起作用了,因为它返回了一些明智的信息。但是,命令nmcli c show将连接显示为not使用中。

NetworkManager在我们的系统中拥有八个连接:

# dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Settings org.freedesktop.DBus.Properties.Get string:org.freedesktop.NetworkManager.Settings string:Connections
method return time=1575940954.061910 sender=:1.8 -> destination=:1.70 serial=9361 reply_serial=2
   variant       array [
         object path "/org/freedesktop/NetworkManager/Settings/2"
         object path "/org/freedesktop/NetworkManager/Settings/7"
         object path "/org/freedesktop/NetworkManager/Settings/3"
         object path "/org/freedesktop/NetworkManager/Settings/5"
         object path "/org/freedesktop/NetworkManager/Settings/4"
         object path "/org/freedesktop/NetworkManager/Settings/8"
         object path "/org/freedesktop/NetworkManager/Settings/1"
         object path "/org/freedesktop/NetworkManager/Settings/6"
      ]

现有连接是有线(以太网)连接,我想添加无线连接。为什么我的ActivateConnection呼叫不这样做?

java dbus networkmanager
1个回答
0
投票

如果ActivateConnection调用返回成功,但是此配置文件实际上并未激活/激活,则有理由认为激活失败后不久。

查看NetworkManager的日志文件以了解激活失败的原因。可能启用level=TRACE日志记录,有关日志记录的提示,请参见https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/contrib/fedora/rpm/NetworkManager.conf#n28

您还可以在另一个终端上运行nmcli monitor,以了解发生了什么。

现有连接是有线(以太网)连接,我想添加无线连接

您要添加连接配置文件吗?那不是ActivateConnection所做的。大致参见AddConnection和D-Bus API:https://developer.gnome.org/NetworkManager/stable/spec.html

为什么我的ActivateConnection调用不这样做?

对不起,我听不懂。做什么?

© www.soinside.com 2019 - 2024. All rights reserved.