首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >挂载iPod时发生多个挂载事件

挂载iPod时发生多个挂载事件
EN

Stack Overflow用户
提问于 2011-01-05 22:24:09
回答 1查看 174关注 0票数 0

我正在开发一个应用程序,该应用程序必须检测存储卷是否已安装或卸载。我使用GIO来实现这一点。我在监听mount-addedmount-removed信号。挂载/卸载笔式驱动器时,一切正常。但是,我在挂载iPod时发现了一个问题。我得到了两个回调,每个都是在mount和unmount上的。我假设其中一个GMount对象应该是shadowed,但是g_mount_is_shadowed对这两个对象都返回了false。我如何决定处理和忽略哪一个?我无法同时处理这两个问题。我必须检测对应于存储设备的挂载/卸载,并仅处理该挂载/卸载。

代码语言:javascript
复制
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);
    ...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-06 19:35:48

我已经弄明白了。对于添加的每个文件系统,GIO都会发出一个mount-added信号。iPod有两个文件系统-一个用于操作系统,另一个用于存储音乐。因此出现了重复的回调。卸载时也会发生同样的情况。这与阴影坐骑没有任何关系。不幸的是,我仍然不知道如何区分这两个坐骑。GIO显示的唯一区别是其中一个GMount对象没有与之关联的GVolume对象。我不知道该怎么解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4605106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档