2016-06-14 17 views
1

Ich entwickle ein Debug-Programm in Android. Das Debug-Programm ist ein native C++ Prozess und ist ein Teil der Android platform. Ich muss Protokoll auf der externen SD-Karte speichern, wenn es eine in das Android-Gerät eingesteckt ist, und aufhören, darauf zuzugreifen , wenn es abgehängt ist.Android-Dateisystem-Benachrichtigung ein-/ausschalten

Gibt es einen Benachrichtigungsmechanismus für Dateisystem mount/unmount? Ich habe das Vold-Programm überprüft und habe keine Ahnung.

Antwort

1

Ein Mechanismus namens hotplug im Linux-Kernel, um damit umzugehen. Im Benutzerbereich können Sie den Netlink-Socket zum Erkennen verwenden.

Wenn die SD-Karte eingefügt oder entfernt, können Sie die Aktion von Netlink-Paket erhalten.

Nachdem die Aktion empfangen wurde, um sicherzustellen, dass die Geräte montiert oder nicht angeschlossen sind, überprüfen Sie die Datei /proc/mounts auf einen Befestigungspunkt.

Siehe Beispiel here für das Netlink-Ereignis.

+0

Danke für Ihre Informationen. Die Netlink-Nachricht funktioniert, wenn eine SD-Karte eingelegt und entfernt wird. Wenn ich die SD in der Systemeinstellung austausche, informiert Android alle nativen Prozesse, die auf die SD-Karte zugreifen? –

+0

Wie wird Ihr nativer Prozess erstellt? Wenn es aus Dalvik oder Kunst erstellt wurde, überprüfen Sie 'Intent.ACTION_MEDIA_MOUNTED und Intent.ACTION_MEDIA_UNMOUNTED'. – alijandro