【发布时间】:2018-03-16 23:18:48
【问题描述】:
我目前正在使用 GDBus 与 ConsoleKit 交谈。我使用 ConsoleKit2 XML 文件和gdbus-codegen 来生成代码。一切正常。但是如何检查对象是否存在?例如我想看看是否有/org/freedesktop/ConsoleKit/Session2(只是一个例子,我知道我可以枚举 Seat 对象中的所有 Session)。
我尝试使用 org.freedesktop.DBus.Peer.Ping 函数,但它会返回
dbus-send --system --print-reply --reply-timeout=2000 --type=method_call --dest=org.freedesktop.DBus /org/freedesktop/ConsoleKit/Seat1 org.freedesktop.DBus.Peer.Ping
Error org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.168" (uid=1000 pid=18279 comm="dbus-send --system --print-reply --reply-timeout=2") interface="org.freedesktop.DBus.Peer" member="Ping" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)
【问题讨论】: