首页 > 解决方案 > 网络管理器 dbus 接口调用无线在 raspbian 上不起作用

问题描述

我有以下代码使用 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 接口有什么不同吗?

标签: c++linuxraspberry-pi3dbusnetworkmanager

解决方案


推荐阅读