2016-06-14 46 views
1

我正在開發一個調試程序Android。該調試程序是native C++ 進程,並且是Android platform的一部分。如果有一個SD卡插入到Android設備中,我需要將日誌保存到外部SD卡,並在卸載時停止訪問 。Android文件系統安裝/卸載通知

有沒有文件系統mount/unmount的通知機制?我檢查了 vold程序,並沒有任何線索。

回答

1

Linux內核中稱爲hotplug的機制來處理它。在用戶空間中,您可以使用netlink套接字進行檢測。

當插入或移除SD卡時,您可以從netlink數據包中獲取操作。

收到該操作後,爲確保設備已安裝或未安裝,請檢查文件/proc/mounts以獲取安裝點。

有關netlink事件的示例,請參閱here

+0

感謝您的信息。當插入和移除SD卡時,netlink信息起作用。當我在系統設置中彈出SD時,Android會通知所有正在訪問SD卡的原生進程嗎? –

+0

你的本地進程是如何創建的?如果它是從dalvik或art創建的,請選中「Intent.ACTION_MEDIA_MOUNTED和Intent.ACTION_MEDIA_UNMOUNTED」。 – alijandro