gpt4 book ai didi

dbus - 如何使用 Qtdbus 在系统总线上公开方法

转载 作者:行者123 更新时间:2023-12-01 04:06:26 31 4
gpt4 key购买 nike

我想在 Qt Creator 中使用 Qt Dbus 在系统总线上公开我的应用程序的方法。
在使用 session 总线时,方法会暴露出来,但是使用系统总线时,我只能看到我注册的服务名称,但没有方法可以暴露在它之下。(我正在 D-feet 中检查它)
我该怎么办 ?

最佳答案

您必须将配置文件(例如:example-dbus.conf)放在 /etc/dbus-1/system.d/

示例-dbus.conf 文件看起来像:

<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">

<busconfig>
<!-- Only root user can own the service -->
<policy user="root">
<allow own="com.company.qtdbus"/>
</policy>

<!-- Allow anyone to invoke methods on server, except SetHostName -->
<policy context="default">
<allow send_destination="com.company.qtdbus"/>
<allow receive_sender="com.company.qtdbus"/>

<deny send_destination="com.company.qtdbus"
send_interface="com.company.qtdbus.Server" send_member="SetHostName"/>
</policy>

<!-- Allow everything, including access to SetHostName -->
<policy user="root">
<allow send_destination="com.company.qtdbus"/>
<allow receive_sender="com.company.qtdbus"/>
</policy>
</busconfig>

使用 /etc/init.d/d-bus restart 重新启动 dbus 守护进程现在你应该被允许连接到系统总线。实际上,如果不允许连接到系统总线,则会显示错误消息。

关于dbus - 如何使用 Qtdbus 在系统总线上公开方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9030253/

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