我有以下代码使用 NetworkManager dbus api 检索接入点信息:
//---------------------------------------------------------------------------------
QDBusInterface dbus_iface("org.freedesktop.NetworkManager",
"/org/freedesktop/NetworkManager/Devices/2", // path (might be different in other systems)
"org.freedesktop.NetworkManager.Device.Wireless",
bus);
QDBusMessage query = dbus_iface.call("GetAllAccessPoints");
qDebug() << query;
if(query.type() == QDBusMessage::ReplyMessage) {
QDBusArgument arg = query.arguments().at(0).value<QDBusArgument>();
arg.beginArray();
while(!arg.atEnd()) {
QString element = qdbus_cast<QString>(arg);
netList->append(element);
showAccessPointProperties(element);
}
arg.endArray();
} else {
qDebug() << " dbus error: " << query.errorName();
}
此代码适用于桌面 linux(ubuntu 18.04)。
但是在 raspbian (buster, raspberry pi 3 B/B+) 中这个代码不起作用!问题是这个电话:
dbus_iface.call("GetAllAccessPoints");
返回空回复。
如何在 raspbian 和 ubuntu 中使用 NM dbus 接口有什么不同吗?