在没有 GNOME 的情况下使用 glib gio GVolumeMonitor

Posted

技术标签:

【中文标题】在没有 GNOME 的情况下使用 glib gio GVolumeMonitor【英文标题】:use glib gio GVolumeMonitor without GNOME 【发布时间】:2012-10-13 22:58:32 【问题描述】:

我对 glib / gio GVolumeMonitor 有疑问。当我运行这段代码时

g_type_init();
GVolumeMonitor *vmon = g_volume_monitor_get();
GList *drives = g_volume_monitor_get_connected_drives(vmon);
printf("DRIVES: %p\n", drives);

在 gnome 中我得到了一个有效的条目。

在 gnome 之外(例如,在没有 gnome 会话的终端中)我得到 NIL。

有没有人提示如何正确使用 GVolumeMonitor?可能gio需要初始化,但我不知道怎么做。

【问题讨论】:

【参考方案1】:

您需要 dbus 和 gvfsd。要对其进行测试,您可以在 TTY 中尝试以下操作:

$ dbus-launch screen
$ ipython
>>> import gio
>>> vmon = gio.volume_monitor_get()
>>> vmon.get_connected_drives()
[...]

【讨论】:

以上是关于在没有 GNOME 的情况下使用 glib gio GVolumeMonitor的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 glib/gio 监控根目录?

GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion ‘G_IS_DBUS_CONNECTION (connectio

GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion ‘G_IS_DBUS_CONNECTION (connectio

GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion ‘G_IS_DBUS_CONNECTION (connectio

GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion ‘G_IS_DBUS_CONNECTION (connectio

gio 和 gvfs 库支持哪些平台?