質問

私は、ストレージボリュームがマウントまたはマウント解除されたかどうかを検出するために持っているアプリに取り組んでいます。私はそのためGIOを使用しています。私はmount-addedmount-removed信号のリスニング。すべては私が/マウントペンドライブをアンマウントするとき罰金に動作します。 iPodをマウントするときしかし、私は問題を見ています。私は、マウントとアンマウント上の2つのコールバックをそれぞれ取得しています。私は影<だろうGMountのオブジェクトの1つを仮定しました/>しかし、 g_mount_is_shadowed に戻っています両方の場合はfalse。どのように私はどちらの方法にしている無視することにしたのですか?私は両方を処理することはできません。 Iマウント/アンマウントのみ記憶装置及び処理に対応することを検出する必要があります。

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);
    ...
}
役に立ちましたか?

解決

私はそれを考え出しました。 GIOが追加されている各ファイルシステムのmount-added信号を発します。 OS用と音楽を格納するための1 - iPodは2つのファイルシステムを持っています。したがって、繰り返しコールバック。同じことはアンマウントに起こります。これは、影のマウントとは何の関係もありません。残念ながら、私はまだ2つのマウントを区別するのか分かりません。唯一の違いはGIOshows GMountオブジェクトの一つは、それに関連付けられたGVolumeオブジェクトを持っていないということです。私はそれを解釈する方法がわからない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top