是否有 g_dbus 函数来更新非缓存的 属性 值?
Is there a g_dbus function to update the non cached property value?
我正在使用 Raspberry Pi 进行主机项目。目标是在主机上有一个图形用户界面,可以在播放音乐时控制 phone。
我似乎无法让 phone 启用 "Shuffle" 或 "Repeat"。
我正在使用 Bluez 5.45 和 GLIB。我可以基本控制播放、停止、下一步。
有没有类似g_dbus_proxy_set_cached_property()的功能?
我试过 g_dbus_proxy_set_cached_property() 函数,但它只更新缓存值,phone 从未接收到值集。
我找到了如何 set/get 属性。我使用了 g_dbus_proxy_call_sync 方法。
g_dbus_proxy_call_sync (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
GDBusCallFlags flags,
gint timeout_msec,
GCancellable *cancellable,
GError **error);
我需要访问 "org.freedesktop.DBUS.Properties" 界面。我需要使用 "Set" 方法。它需要三个参数。
Set(String interface_name, String property_name, A value)
- interface_name - 属性 关联的接口
- 属性名称 - 属性
的名称
value - 属性 的新值(可以是任何有效的 DBUS 类型)。
g_dbus_proxy_call_sync( myProxy,
"org.freedesktop.DBus.Properties.Set",
g_variant_new ("(ssv)",
"org.bluez.MediaPlayer1",
"Repeat",
g_variant_new_string ("alltracks")),
G_DBUS_CALL_FLAGS_NONE, // Flags
-1, // timeout
NULL, // cancellable
&error // error
);
我正在使用 Raspberry Pi 进行主机项目。目标是在主机上有一个图形用户界面,可以在播放音乐时控制 phone。
我似乎无法让 phone 启用 "Shuffle" 或 "Repeat"。
我正在使用 Bluez 5.45 和 GLIB。我可以基本控制播放、停止、下一步。
有没有类似g_dbus_proxy_set_cached_property()的功能?
我试过 g_dbus_proxy_set_cached_property() 函数,但它只更新缓存值,phone 从未接收到值集。
我找到了如何 set/get 属性。我使用了 g_dbus_proxy_call_sync 方法。
g_dbus_proxy_call_sync (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
GDBusCallFlags flags,
gint timeout_msec,
GCancellable *cancellable,
GError **error);
我需要访问 "org.freedesktop.DBUS.Properties" 界面。我需要使用 "Set" 方法。它需要三个参数。
Set(String interface_name, String property_name, A value)
- interface_name - 属性 关联的接口
- 属性名称 - 属性 的名称
value - 属性 的新值(可以是任何有效的 DBUS 类型)。
g_dbus_proxy_call_sync( myProxy, "org.freedesktop.DBus.Properties.Set", g_variant_new ("(ssv)", "org.bluez.MediaPlayer1", "Repeat", g_variant_new_string ("alltracks")), G_DBUS_CALL_FLAGS_NONE, // Flags -1, // timeout NULL, // cancellable &error // error );