스토리지 볼륨이 마운트 또는 마운트 해제되어 있는지 감지해야하는 앱에서 작업하고 있습니다. 나는 그것에 대해 GIO
을 사용하고있다. mount-added
및 mount-removed
신호를 수신합니다. 펜 드라이브를 마운트/마운트 해제 할 때 모든 것이 잘 작동합니다. 그러나 iPod을 장착 할 때 문제가 발생합니다. 내가 마운트 및 마운트 해제 각각에 두 개의 콜백을 받고있다. GMount
개체 중 하나가 shadowed 일 것이라고 가정했지만 g_mount_is_shadowed은 둘 모두에 대해 false를 반환합니다. 처리 할 항목과 무시할 항목을 어떻게 결정합니까? 둘 다 처리 할 수 없습니다. 마운트 장치를 감지하고 저장 장치에 해당하는 마운트 해제를 수행해야합니다.iPod 탑재시 다중 마운트 이벤트
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);
...
}
'볼륨 추가'및 '볼륨 제거'를 시도 했습니까? – ismail
나는 그랬다. 그리고 나는 단지 1 콜백 만 받는다는 것을 알았다. 그러나 모든 사용 사례 (모든 * 스토리지 * 장치의 추가/제거를 감지 할 수 있기를 원합니다)가 확실하지 않으며 광범위한 테스트를 피하기 위해 'mount-xxx'신호를 사용하고 싶습니다. 사례. – 341008
모든 저장 장치는 Linux의 볼륨입니다. 실제로 하나를 시도 했습니까? – ismail