typessignaturedbus

How to use a variant dictionary (`a{sv}`) in dbus-send


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?


Solution

  • 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.