現在、sdcardにファイルがある1つのAndroidアプリケーションを開発しており、このファイルにアクセスしているすべてのプロセスのプロセスIDを見つける必要があります。
android.os.FileObserver を使用すると、ファイルが何らかのプロセスによってアクセスされているかどうかのみを知ることができます。しかし、そのプロセスのプロセス ID を取得する方法は?
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});