您如何真正使用 dbus 从 NetworkManager 获取可见 SSID 列表?
Posted
技术标签:
【中文标题】您如何真正使用 dbus 从 NetworkManager 获取可见 SSID 列表?【英文标题】:How do you really use dbus to obtain the list of visible SSIDs from NetworkManager? 【发布时间】:2020-03-05 18:08:28 【问题描述】:根据示例 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
是我的无线适配器。但是,它似乎返回的结果与命令行等效项不同
nmcli device wifi list
返回更多的 SSID。在工作中尝试上述方法时,我只能通过 dbus-send 获得一个 SSID。在家里,我第一次运行dbus-send
命令时,它返回了一个包含四个接入点的数组,这与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
命令没有的功能?
【问题讨论】:
【参考方案1】:答案是您必须在获取 SSID 列表之前运行重新扫描(方法 RequestScan
)。
【讨论】:
以上是关于您如何真正使用 dbus 从 NetworkManager 获取可见 SSID 列表?的主要内容,如果未能解决你的问题,请参考以下文章