我正在开发一个必须检测存储卷是否已安装或卸载的应用程序。我正在使用GIO
它。我在听mount-added
和mount-removed
信号。当我安装/卸载笔式驱动器时,一切正常。但是,我在安装 iPod 时遇到了问题。我在挂载和卸载时分别收到两个回调。我假设其中一个GMount
对象会被遮蔽,但g_mount_is_shadowed对两者都返回 false。我如何决定处理哪个,忽略哪个?我无法同时处理两者。我必须检测与存储设备对应的挂载/卸载并仅处理它。
int main()
{
g_type_init();
GVolumeMonitor* volume_monitor = g_volume_monitor_get();
g_signal_connect(G_OBJECT(volume_monitor), "mount-added", G_CALLBACK(mount_added), NULL);
g_signal_connect(G_OBJECT(volume_monitor), "mount-removed", G_CALLBACK(mount_removed), NULL);
GMainLoop* main_loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(main_loop);
...
}