我想用RegisterAgent
调用方法gdbus
,但我找不到合适的语法。
使用此命令对/org/bluez
进行反思
$ gdbus introspect --system --dest org.bluez --object-path /org/bluez --recurse
显示接口RegisterAgent
上的方法org.bluez.AgentManager1
具有以下签名:
RegisterAgent(in o agent,
in s capability);
但我找不到任何示例,说明如何将对象传递给gdbus reference documentation中的方法,也没有找到我在互联网上找到的众多示例。
所以我不知道如何将代理作为第一个参数传递,例如我想选择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 调用找到如何执行此操作。有什么想法吗?
答案 0 :(得分:1)
我使用
监视通过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
但是对于dbus-send
的代理对象路径... / org / bluez / agent1 ,以及{{只有/ org / bluez / 代理 1}}。我认为这方面也没有记录。