由于 QDBusRawType,dbus-send 失败
Posted
技术标签:
【中文标题】由于 QDBusRawType,dbus-send 失败【英文标题】:dbus-send fails due to QDBusRawType 【发布时间】:2021-09-29 01:21:07 【问题描述】:服务的自省为我感兴趣的方法返回以下内容
method bool org.my.connectionInterface.sendParam(QDBusRawType::(is param))
但是,当我尝试发送消息时,我收到此错误
dbus-send --system --print-reply --dest=org.my.connectionInterface /Connection1 org.my.connectionInterface.sendParam int32:1 string:"jolly-string"
Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'sendParam' in interface 'org.my.connectionInterface' at object path '/Connection1' (signature 'is')
我可以调用没有参数或简单参数类型的方法,所以,我认为问题出在 QDBusRawType 上。有没有办法将参数包装在 QDBusRawType 中?
【问题讨论】:
自省 XML 是什么样的? 【参考方案1】:我不希望int32:
和string:
是必需的,因为该方法具有is
的签名,因此它知道第一个参数是int32
,第二个参数是string
。
dbus-send --system --print-reply --dest=org.my.connectionInterface /Connection1 org.my.connectionInterface.sendParam 1 "jolly-string"
如果这不起作用,您能否使用以下输出更新您的问题:
busctl introspect SERVICE OBJECT [INTERFACE]
【讨论】:
以上是关于由于 QDBusRawType,dbus-send 失败的主要内容,如果未能解决你的问题,请参考以下文章