私は、ストレージボリュームがマウントまたはマウント解除されているかどうかを検出する必要のあるアプリを開発中です。私はGIO
を使っています。私はmount-added
とmount-removed
信号を聞いています。ペンドライブをマウント/アンマウントすると、すべてうまく動作します。しかし、iPodを取り付ける際に問題が発生しています。私はマウントとアンマウントのそれぞれに2つのコールバックを取得しています。私はGMount
オブジェクトの1つが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);
...
}
'volume-added'と' volume-removed'を試しましたか? – ismail
しました。そして私は1つのコールバックしか得られないことを知りました。しかし私はすべての私の使用例(私はすべての*ストレージ*デバイスの追加/削除を検出できるようにしたい)と私は確信していません、そして、私は広範なテストを避けるために 'mount-xxx'シグナルケース。 – 341008
すべてのストレージデバイスはLinux上のボリュームですが、実際に試しましたか? – ismail