无法接收 UPower 信号

无法接收 UPower 信号

我是 dbus 的新手,所以请耐心等待。

我有以下代码: http://pastebin.com/8zpM7Pwb

这是我发现并根据我的情况进行修改的一些样本。

一般的想法是“捕获”来自和的 dbus 信号com.canonical.Unity.Panel.Serviceorg.freedesktop.UPower主要是第二个 - 我只使用 Panel 作为比较)。问题是我收到了 Unity Panel 信号,但没有收到来自 UPower 的信号。我确实dbus-monitor在同一时间在第二个终端启动,所以我确信那些信号确实会四处飞散。

我也对这些接口进行了逐一测试,结果是一样的 - 使用 Unity Panel 接口的代码获得了我想要的信号,使用 UPower 的代码却没有 - 它只是阻塞dbus_connection_read_write(conn, -1);并且永远不会继续。

谁能告诉我我哪里犯了错误?

答案1

我应该DBUS_BUS_SESSION使用DBUS_BUS_SYSTEM,因为接口org.freedesktop.UPower不会在会话范围内发送信号。

就如此容易。

相关内容