当我尝试使用 Rust 中的network-manager crate在 dbus 上枚举 WiFi 连接时,在带有 Raspbian Stretch 9.4 和 network-manager v1.6.2 的 Raspberry Pi 3B+ 上编译和运行时,NetworkManager::get_connections
抛出D-Bus failure: Variant type does not match match: Variant(Iter(UInt32))
.
nmcli
通过命令行工作正常,所以我怀疑网络管理器版本和 dbus 之间不兼容,所以我尝试通过手动克隆 repos 升级到最新的dbus="0.5.4"
和 `network-manager="0.11.2" crates,但同样的错误。也许我需要降级其中一些组件?
这是我的全部代码:
extern crate network_manager;
use network_manager::{
AccessPoint, AccessPointCredentials, Connection, ConnectionState, Connectivity, Device,
DeviceType, NetworkManager, Security, ServiceState,
};
fn main() {
let manager = NetworkManager::new();
let connections = manager.get_connections().unwrap();
}