Я пытаюсь использовать Gio :: VolumeMonitor для обнаружения прихода съемного носителя, чтобы я мог автоматически направлять выходные данные журнала в файл на съемном носителе. К сожалению, VolumeMonitor не поддается так легко. Я написал следующий тестовый код в своем основном конструкторе windows.
Glib::RefPtr <Gio::VolumeMonitor> refMonitor = Gio::VolumeMonitor::get();
Glib::ListHandle <Glib::RefPtr <Gio::Volume>> listVolumes = refMonitor
->get_volumes();
refMonitor->signal_volume_added().connect(sigc::mem_fun(*this,
&CMainWindow::VolumeAdded));
for (Glib::RefPtr <Gio::Volume> refVolume : listVolumes)
{
std::cout << "Volume: " << refVolume->get_name() << std::endl;
}
Если я запускаю этот код с подключенным USB-накопителем, он появляется в списке, однако сигнал signal_volume_added никогда не появляется запускается, даже если я вставляю, размонтирую или удаляю его. В чем может быть проблема? Я использую giomm-2.4 версии 2.56.0.