0
目前我正在開發一個android應用程序,其中我有一個SD卡上的文件,我必須找出正在訪問此文件的所有進程的進程ID。文件被哪個進程鎖定(android)?
使用android.os.FileObserver我們只能知道文件是否被任何進程訪問。但是如何獲得該進程的進程ID?
目前我正在開發一個android應用程序,其中我有一個SD卡上的文件,我必須找出正在訪問此文件的所有進程的進程ID。文件被哪個進程鎖定(android)?
使用android.os.FileObserver我們只能知道文件是否被任何進程訪問。但是如何獲得該進程的進程ID?
我認爲這不可能通過Android SDK。
你可能要找的是lsof
(系統)命令。不幸的是,它在Android 4.0下的大多數股票ROM中不可用。根據similar question下的評論,ICS增加了基本的lsof
支持。我有Galaxy Nexus運行4.0.3,我看到lsof
命令存在於我的手機上。您也可以安裝BusyBox來安裝lsof
(或要求您的應用程序的用戶安裝它)。
假設你有lsof
存在於手機,你可以解析輸出運行命令:
Runtime.getRuntime().exec(new String[] { "lsof", pathToInterestingFile});