कहें कि मैं अपने ईथरनेट कार्ड का इंटरफ़ेस नाम प्रोग्रामेटिक रूप से प्राप्त करना चाहता हूं।क्या आप org.freedesktop.DBus.Properties.Get को कॉल किए बिना डी-बस संपत्ति पुनर्प्राप्त कर सकते हैं?
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
रिटर्न:
Error org.freedesktop.DBus.Error.UnknownMethod:
Method "Interface" with signature "" on interface
"org.freedesktop.NetworkManager.Device" doesn't exist
मैं पूछ फोन org.freedesktop.DBus.Properties.Get
अजगर/जावा/आदि में एक object.getProp("someproperty")
object.getSomeProperty()
के बजाय फोन करने के लिए होने की तरह लग रहा है के लिए होने क्योंकि ।
यह शर्म की बात है कि सबसे अच्छा dbus कमांड लाइन उपकरण qt के साथ वितरित किया जाता है, और dbus नहीं। – olejorgenb
यह ध्यान देने योग्य है कि, आंतरिक रूप से, 'qdbus' * * org.freedesktop.DBus.Properties.Get' या 'org.freedesktop.DBus.Properties.GetAll' को कॉल कर रहा है, या' org से सिग्नल से गुण प्राप्त कर रहा है .freedesktop.DBus.ObjectManager'। प्रोटोकॉल स्तर पर, यह एक आवश्यकता है। –