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});