2016-06-14 7 views
1

私はAndroidにデバッグプログラムを開発しています。デバッグプログラムはnative C++ プロセスであり、Android platformの一部です。ログが外部の SDカードに保存されている場合は保存し、マウントされていない場合は のアクセスを停止する必要があります。Androidファイルシステムのマウント/アンマウント通知

ファイルシステムのマウント/マウント解除の通知メカニズムはありますか?私は voldプログラムをチェックしたことがあり、何の手がかりも得ていません。

答えて

1

これを処理するためのLinuxカーネル内のhotplugというメカニズム。ユーザー空間では、netlinkソケットを使用して検出を行うことができます。

sdcardを挿入または削除すると、netlinkパケットからアクションを取得できます。

アクションを受信した後、デバイスがマウントまたはアンマウントされていることを確認するには、ファイル/proc/mountsでマウントポイントを確認します。

netlinkイベントの例については、hereを参照してください。

+0

ありがとうございます。 netlinkメッセージは、SDカードが挿入され、削除されたときに動作します。システム設定でSDを取り出すと、AndroidはSDカードにアクセスしているすべてのネイティブプロセスに通知しますか? –

+0

ネイティブプロセスはどのように作成されますか? dalvikやartから作成されている場合は、 'Intent.ACTION_MEDIA_MOUNTEDとIntent.ACTION_MEDIA_UNMOUNTED'をチェックしてください。 – alijandro