gpt4 book ai didi

linux - 使用 gdbus 实用程序将对象作为参数传递

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:33 26 4
gpt4 key购买 nike

我想用 gdbus 调用方法 RegisterAgent 但我找不到合适的语法。

使用此命令在 /org/bluez 上自省(introspection)

$ gdbus introspect --system --dest org.bluez --object-path /org/bluez --recurse

显示接口(interface) org.bluez.AgentManager1 上的方法 RegisterAgent 具有以下签名:

RegisterAgent(in  o agent,
in s capability);

但我找不到任何示例说明如何将对象 传递给gdbus reference documentation 中的方法。 ,也不是我在 Internet 上找到的众多示例。

所以我不知道如何将代理作为第一个参数传递,例如我想选择 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/agent 用于 gdbus。我认为这方面也没有记录。

关于linux - 使用 gdbus 实用程序将对象作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com