3

Android デバイス上の特定のプログラムによってアクセスされた (またはアクセスしようとして失敗した) ファイルを監視する必要があります。PC の FileMon のようなもの。

プログラムを逆コンパイルするための提案がネット上にありますが、私はもっと直接的な方法を探しています。

ありがとう。

4

1 に答える 1

5

標準のandroid.os.FileObserverを使用する必要があります。これは、デバイス上の任意のプロセス (これを含む) によってファイルがアクセスまたは変更された後にイベントを発生させるために (inotify を使用して) ファイルを監視します。FileObserver は抽象クラスです。サブクラスは、イベント ハンドラー onEvent(int, String) を実装する必要があります。このリンクを参照してくださいhttp://developer.android.com/reference/android/os/FileObserver.html

ここでの簡単な例:

import android.os.FileObserver;   
import android.util.Log;   


    /**  
     * SD Card file monitor  
     * 
     */  
public class SDCardListener extends FileObserver {   

       public SDCardListener(String path) { 
              super(path);   
       }   

       @Override  
       public void onEvent(int event, String path) {          
              switch(event) {   
                     case FileObserver.ALL_EVENTS:   
                            Log.d("all", "path:"+ path);   
                            break;   
                     case FileObserver.CREATE:   
                            Log.d("Create", "path:"+ path);   
                            break;   
              }   
      }   
}

SDCardListener listener = new SDCardListener("YOURDIRPATH");   

//Start monitoring   
listener.startWatching();

// You can try to access the directory here 

//Stop monitoring   
listener.stopWatching();  

心に留めておくべきことの 1 つは、ファイル オブザーバー オブジェクトへの有効な参照を保持して、GC からそれを防ぐ必要があるということです。

于 2013-09-03T12:30:25.800 に答える