基于fatmimin示例,我向接口添加了一个属性:
<property name="Sputulant" type="i" access="readwrite"/>使gen做它的事情,导致两个功能被称为:
min_min_bus_gdbus_set_sputulant()
min_min_bus_gdbus_get_sputulant()我没有在server.c中添加任何代码来“连接”这个属性(按照Hello方法的方式,使用g_signal_connect())
当从客户端调用这些函数时,只有get函数工作。我不能设定价值。
但是,使用gdbus工具确实有效:
gdbus call -e -d com.fatminmin -o /com/fatminmin/GDBUS -m org.freedesktop.DBus.Properties.Set "com.fatminmin.GDBUS" "Sputulant" "<123>"我已经深入研究了几天了,找不到任何关于属性的示例代码或任何其他建议,那么我在这里做错了什么呢?
提前感谢
发布于 2022-01-13 08:15:23
好的,原因是您不能使用用于执行get属性的代理句柄来执行set属性。
所以,
proxy = lkbr_bus_gdbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE,
"com.lkbr", "/com/lkbr/GDBUS", NULL, &error);
lkbr_bus_gdbus_set_sputulant(proxy, 235);
g_object_unref(proxy);工作,创建一个新的代理,并取消它,因为每个调用似乎都是要走的路。
https://stackoverflow.com/questions/70608112
复制相似问题