Я работаю над приложением, которое должно определить, смонтирован или отключен том хранилища. Я использую 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);
...
}