3
Qt Creator에서 Qt Dbus를 사용하여 시스템 버스에 내 응용 프로그램의 메서드를 표시하려고합니다. 세션 버스를 사용하는 동안 메서드가 노출되지만 시스템 버스를 통해 등록 된 서비스 이름 만 볼 수 있지만 그 아래에 노출 될 메서드는 없습니다. (D- 피트로 확인) 어떻게해야합니까? 나는한다 ?Qtdbus를 사용하여 시스템 버스에서 메서드를 노출하는 방법
Qt Creator에서 Qt Dbus를 사용하여 시스템 버스에 내 응용 프로그램의 메서드를 표시하려고합니다. 세션 버스를 사용하는 동안 메서드가 노출되지만 시스템 버스를 통해 등록 된 서비스 이름 만 볼 수 있지만 그 아래에 노출 될 메서드는 없습니다. (D- 피트로 확인) 어떻게해야합니까? 나는한다 ?Qtdbus를 사용하여 시스템 버스에서 메서드를 노출하는 방법
당신은 설정 파일 배치해야한다 :에 (예를 들어, 예를-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>
다시 시작 DBUS 데몬과 /etc/init.d/d-bus restart
이제 시스템 버스에 연결할 수 있어야합니다. 실제로 시스템 버스에 연결할 수 없으면 오류 메시지가 표시됩니다.
나는 정책상의 문제를 생각한다. '/ etc/dbus-1/system.d'에 conf 파일을 추가 하시겠습니까? 나는 같은 문제를 겪었고 설정 파일을 변경하여 해결했다. –