У меня есть следующий код для получения информации о точках доступа с помощью 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");
возвращает пустой ответ.
Есть ли что-то отличное в том, как использовать интерфейс NM dbus в raspbian и ubuntu?