使用 gdbus 实用程序将对象作为参数传递
Pass an object as argument with gdbus utility
我想用 gdbus
调用方法 RegisterAgent
,但找不到合适的语法。
使用此命令在 /org/bluez
上自省
$ gdbus introspect --system --dest org.bluez --object-path /org/bluez --recurse
显示接口 org.bluez.AgentManager1
上的方法 RegisterAgent
具有以下签名:
RegisterAgent(in o agent,
in s capability);
但我找不到任何示例说明如何将 对象 传递给 gdbus reference documentation 中的方法,在我找到的众多示例中也找不到互联网。
所以我不知道如何将代理作为第一个参数传递,例如我想 select KeyboardOnly
作为代理,但如何才能做到这一点?
使用 dbus-send
,得到:
dbus-send --print-reply --system --dest=org.bluez /org/bluez \
--type=method_call org.bluez.AgentManager1.RegisterAgent \
objpath:/org/bluez/agent1 string:KeyboardOnly
但我找不到如何通过 gdbus 调用来执行此操作。有什么想法吗?
我使用
监视通过 DBus 发送的实际命令
dbus-monitor --system
经过反复试验,我终于找到了正确的语法。
我尝试制作的 gdbus 命令可以这样拼写:
gdbus call --system --dest org.bluez --method \
org.bluez.AgentManager1.RegisterAgent --object-path /org/bluez \
/org/bluez/agent KeyboardOnly
所以将一个对象作为参数传递给gdbus是通过拼写它的路径来完成的,例如在我们的例子中是/org/bluez/agent
。在我看来,这没有记录。
对了,对应的dbus-send
命令拼写几乎一样
dbus-send --print-reply --system --dest=org.bluez /org/bluez \
--type=method_call org.bluez.AgentManager1.RegisterAgent \
objpath:/org/bluez/agent1 string:KeyboardOnly
但对于代理对象路径... /org/bluez/agent1 对于 dbus-send
,仅 /org/bluez/[=31= gdbus
的代理。我认为这方面也没有记录。
我想用 gdbus
调用方法 RegisterAgent
,但找不到合适的语法。
使用此命令在 /org/bluez
上自省
$ gdbus introspect --system --dest org.bluez --object-path /org/bluez --recurse
显示接口 org.bluez.AgentManager1
上的方法 RegisterAgent
具有以下签名:
RegisterAgent(in o agent,
in s capability);
但我找不到任何示例说明如何将 对象 传递给 gdbus reference documentation 中的方法,在我找到的众多示例中也找不到互联网。
所以我不知道如何将代理作为第一个参数传递,例如我想 select KeyboardOnly
作为代理,但如何才能做到这一点?
使用 dbus-send
,得到:
dbus-send --print-reply --system --dest=org.bluez /org/bluez \
--type=method_call org.bluez.AgentManager1.RegisterAgent \
objpath:/org/bluez/agent1 string:KeyboardOnly
但我找不到如何通过 gdbus 调用来执行此操作。有什么想法吗?
我使用
监视通过 DBus 发送的实际命令dbus-monitor --system
经过反复试验,我终于找到了正确的语法。
我尝试制作的 gdbus 命令可以这样拼写:
gdbus call --system --dest org.bluez --method \
org.bluez.AgentManager1.RegisterAgent --object-path /org/bluez \
/org/bluez/agent KeyboardOnly
所以将一个对象作为参数传递给gdbus是通过拼写它的路径来完成的,例如在我们的例子中是/org/bluez/agent
。在我看来,这没有记录。
对了,对应的dbus-send
命令拼写几乎一样
dbus-send --print-reply --system --dest=org.bluez /org/bluez \
--type=method_call org.bluez.AgentManager1.RegisterAgent \
objpath:/org/bluez/agent1 string:KeyboardOnly
但对于代理对象路径... /org/bluez/agent1 对于 dbus-send
,仅 /org/bluez/[=31= gdbus
的代理。我认为这方面也没有记录。