可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have some trouble with dbus-send
when using a{sv}
Calling a method with in_signature='a{ss}'
seems to work using the following command line:
dbus-send --dest="org.test.TestService" /org/test/TestService/object org.test.TestService.method1 dict:string:string:"a","1","b","2"
Now I would like to have a dictionary with a variant type for values (in_signature=a{sv}
),
How can I use it in dbus-send
?
回答1:
Although D-Bus supports signatures such as a{sv}
, dbus-send does not. This is from the dbus-send man page:
"...D-Bus supports more types than these, but dbus-send currently does not. Also, dbus-send does not permit empty containers or nested containers (e.g. arrays of variants)."
So as far as I can understand it, you cannot send a dict of string:variant using dbus-send.
回答2:
Not possible with dbus-send
As mentioned, dbus-send
does not support all Dbus types. From dbus-send man page:
Also, dbus-send does not permit empty containers or nested containers (e.g. arrays of variants).
But possible gdbus
Buried in https://www.freedesktop.org/software/gstreamer-sdk/data/docs/2012.5/gio/gdbus.html we see this:
gdbus call --session \ --dest org.freedesktop.Notifications \ --object-path /org/freedesktop/Notifications \ --method org.freedesktop.Notifications.Notify \ my_app_name \ 42 \ gtk-dialog-info \ "The Summary" \ "Here's the body of the notification" \ [] \ {} \ 5000
Bonus: this method returns the id, so you can close or replace the notification.
回答3: