您如何真正使用 dbus 从 NetworkManager 获取可见 SSID 列表?
How do you really use dbus to obtain the list of visible SSIDs from NetworkManager?
根据例12 here我应该可以用
dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Devices/4 org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints
发现所有可用的无线接入点,因为 /org/freedesktop/NetworkManager/Devices/4
是我的无线适配器。但是,return 的结果似乎不同于命令行等效的
nmcli device wifi list
其中 return 还有更多 SSID。在工作中尝试上述方法时,我只能通过 dbus-send 获得一个 SSID。在家里,我第一次 运行 dbus-send
命令它 returned 一个包含四个访问点的数组,与 return 由 nmcli
.我再次 运行 相同的 dbus-send
命令,这次它生成了一个只有一个接入点的列表,就像在工作中一样。
第二天在家里,我尝试了几次 dbus-send
命令,但它只列出了一个接入点。然后我再次 运行 nmcli
命令,它列出了五个接入点。之后,dbus-send
命令也列出了五个接入点。似乎 nmcli
命令比 dbus-send
命令更能发现访问点,但一旦这样做,dbus-send
命令也能够找到访问点。然而,实际情况并非如此:nmcli
命令总是发现 12 个或更多 AP,但 dbus-send
命令只发现一个。
我肯定只有一个无线适配器:ifconfig -a
列表:enp0s25、lo、sit0 和 wlp3s0。
什么是 nmcli
命令而 dbus-send
命令没有的?
答案是您必须在获取 SSID 列表之前运行重新扫描(方法RequestScan
)。
根据例12 here我应该可以用
dbus-send --system --print-reply --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Devices/4 org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints
发现所有可用的无线接入点,因为 /org/freedesktop/NetworkManager/Devices/4
是我的无线适配器。但是,return 的结果似乎不同于命令行等效的
nmcli device wifi list
其中 return 还有更多 SSID。在工作中尝试上述方法时,我只能通过 dbus-send 获得一个 SSID。在家里,我第一次 运行 dbus-send
命令它 returned 一个包含四个访问点的数组,与 return 由 nmcli
.我再次 运行 相同的 dbus-send
命令,这次它生成了一个只有一个接入点的列表,就像在工作中一样。
第二天在家里,我尝试了几次 dbus-send
命令,但它只列出了一个接入点。然后我再次 运行 nmcli
命令,它列出了五个接入点。之后,dbus-send
命令也列出了五个接入点。似乎 nmcli
命令比 dbus-send
命令更能发现访问点,但一旦这样做,dbus-send
命令也能够找到访问点。然而,实际情况并非如此:nmcli
命令总是发现 12 个或更多 AP,但 dbus-send
命令只发现一个。
我肯定只有一个无线适配器:ifconfig -a
列表:enp0s25、lo、sit0 和 wlp3s0。
什么是 nmcli
命令而 dbus-send
命令没有的?
答案是您必须在获取 SSID 列表之前运行重新扫描(方法RequestScan
)。