dbus-send以及dbus-monitor工具的使用方法示例。
dbus-send的详细用法可以参阅手册($man dbus-send或者$dbus-send --help)。
调用远程方法的一般形式是:
$ dbus-send [--system | --session] --type=method_call --print-reply --dest=连接名 对象路径 接口名.方法名 参数类型:参数值 参数类型:参数值
dbus-send支持的参数类型包括:string, int32, uint32, double, byte, boolean。
下面是一些调用示例:
(1)调用org.freedesktop.DBus.Introspectable.Introspect方法查看消息总线对象支持的接口。
$ dbus-send --session --type=method_call --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBu s.Introspectable.Introspect
(2)You can get the number of seconds the screensaver has been active by running the following:
dbus-send --session \ --dest=org.gnome.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=20000 \ /org/gnome/ScreenSaver \ org.gnome.ScreenSaver.GetSessionIdleTime
(3)You can activate the screensaver like so:
dbus-send --session \ --dest=org.gnome.ScreenSaver \ --type=method_call \ --print-reply \ --reply-timeout=20000 \ /org/gnome/ScreenSaver \ org.gnome.ScreenSaver.SetActive \ boolean:true
dbus-monitor的详细用法可以参阅手册($man dbus-monitor或者$dbus-monitor --help)
下面是一些调用示例:
(1)You can monitor screensaver changes:
dbus-monitor --session \ "type='signal',interface='org.gnome.ScreenSaver'"
(2)Or watch for a specific screensaver signal:
dbus-monitor --session \ "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"
(来自于fmddlmyy的专栏dbus实例讲解(二上):消息和消息总线 http://blog.csdn.net/fmddlmyy/article/details/3640847 和 GNOME Screensaver 2.15.3 Documentation:http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples)