2013-09-03 4 views
1

Android 기기의 특정 프로그램에서 액세스하거나 액세스 및 실패한 파일을 모니터링해야합니다. PC에서 FileMon과 같은 것.Android에서 파일 액세스 모니터링

프로그램을 디 컴파일하는 방법에 대한 제안이 있지만 좀 더 직관적 인 방법을 찾고 있습니다.

감사합니다.

답변

3

당신은 표준 android.os.FileObserver 사용한다,이 파일에 액세스하거나 (본 프로그램 포함) 장치에있는 모든 프로세스에 의해 변경 후 이벤트를 발생하기 위해 (inotify를 사용하여) 파일을 모니터합니다. FileObserver는 추상 클래스입니다. 서브 클래스는 onEvent (int, String) 이벤트 핸들러를 구현해야합니다. 당신이 마음에 베어해야

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

한 가지는 당신이에서 그것을 방지하기 위해 파일 관찰자 객체에 대한 유효한 참조를 유지해야한다는 것입니다 : http://developer.android.com/reference/android/os/FileObserver.html

간단한 예를 들어 여기이 링크를 참조하십시오 GC.

+0

감사합니다. 이 작업을 수행 할 수있는 다운로드 가능한 앱이 있습니까? –

+0

빠른 검색만으로 사용자의 요구 사항에 맞는 직접 사용할 수있는 응용 프로그램은 없습니다. 혼자서 글을 써야합니다. – Robin