私のイーサネットカードのインターフェイス名をプログラムで取得したいとします。これが動作しているようです:org.freedesktop.DBus.Properties.Getを呼び出さずにD-Busプロパティを取得できますか?
返しdbus-send --print-reply \
--type=method_call \
--system \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager/Devices/0 \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.NetworkManager.Device \
string:Interface
:
method return sender=:1.5 -> dest=:1.135 reply_serial=2
variant string "eth0"
を仲介org.freedesktop.DBus.Properties.Get
を切り出すのいくつかの方法があり、より直接的にプロパティを取得しますか?残念ながら、この方法としてそれを呼び出すには動作しません:
dbus-send --print-reply \
--type=method_call \
--system \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager/Devices/0 \
org.freedesktop.NetworkManager.Device.Interface
戻り値:org.freedesktop.DBus.Properties.Get
を呼び出すのPython/Javaの/ etcにあるobject.getProp("someproperty")
代わりobject.getSomeProperty()
のを呼び出すために持っているように見えるしたので、私は聞いて
Error org.freedesktop.DBus.Error.UnknownMethod:
Method "Interface" with signature "" on interface
"org.freedesktop.NetworkManager.Device" doesn't exist
。
それは残念です最高のdbusコマンドラインツールがdbusではなくqtで配布されていることを確認してください。 – olejorgenb
内部的に 'qdbus' *は' org.freedesktop.DBus.Properties.Get'または 'org.freedesktop.DBus.Properties.GetAll'を呼び出すことになるか、あるいはorgからのシグナルからプロパティを取得することに注意する価値があります.freedesktop.DBus.ObjectManager'。プロトコルレベルでは、これが要件です。 –