0

目前我正在开发一个 android 应用程序,其中我在 sdcard 上有一个文件,我必须找出正在访问该文件的所有进程的进程 ID。

使用 android.os.FileObserver 我们只能知道文件是否被任何进程访问。但是如何获取该进程的进程ID?

4

1 回答 1

0

我认为通过 Android SDK 是不可能的。

您可能正在寻找的是lsof(系统)命令。不幸的是,它在 Android 4.0 下的大多数股票 ROM 上不可用。根据类似问题下的评论,ICS 有一个补丁来添加基本lsof支持。我有运行 4.0.3 的 Galaxy Nexus,我看到lsof我的手机上有该命令。您也可以安装 BusyBox 来安装lsof(或要求您的应用程序的用户安装它)。

假设您lsof在电话上存在,您可以解析输出运行命令:

Runtime.getRuntime().exec(new String[] { "lsof", pathToInterestingFile});
于 2012-07-06T20:24:09.863 回答