使用dbus-send调用GetAll

Fri*_*ich 6 dbus

我试过运气:

  dbus-send --system --print-reply  \   
     --dest=org.freedesktop.UDisks \
      /org/freedesktop/UIDisks/devices/md0 \
      org.freedesktop.DBus.Properties.GetAll \
      string:""
Run Code Online (Sandbox Code Playgroud)

如果我正在使用d-free并将""作为参数发送到GetAll,我会得到一个很长的输出列表

尝试上面的代码只会出错:

Error org.freedesktop.DBus.Error.UnknownMethod: Method "GetAll" with signature "s" on
interface "org.freedesktop.DBus.Properties" doesn't exist
Run Code Online (Sandbox Code Playgroud)

所以我做错了什么,但我不知道出了什么问题.我搜索了一个解决方案,但没有提出一个像样的解决方案.也许这是微不足道的,但我不知道....

And*_*rov 6

您需要指定接口名称作为 GetAll 的参数。这个例子对我有用(我有 UDisks2 而不是 UDisks,但其他方面是相似的):

dbus-send --system --print-reply \
   --dest=org.freedesktop.UDisks2 \ 
   /org/freedesktop/UDisks2/block_devices/loop0 
   org.freedesktop.DBus.Properties.GetAll 
   string:"org.freedesktop.UDisks2.Block"
Run Code Online (Sandbox Code Playgroud)