특정한 폴더들의 파일 변경을 모니터링을 해야 하는 경우가 있다면, Android에서는 File Observer를 사용할수 있다.


단말이 켜져있는 상태에서만 해당 변경에 대한 이벤트르 전달 받을수 있기 때문에, 단말이 꺼져있거나, 모니터를 하지 않다가 다시 모니터를 시작할 경우에는, 


모니터를 하고 있단 디렉토리의 변경사항을 따로 추적 관리하는 방법도 준비되어야 한다. (해쉬값을 뽑아둔다던가... 하는 방법)



package com.hopeisagoodthing.fileobserver;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileObserver;
import android.util.Log;

public class FileObserverActivity extends Activity {
	private FileObserver observer;
	private static final String pathToWatch = Environment.getExternalStorageDirectory().toString();
	private static final String TAG = "FileObserverActivity";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		observer = new FileObserver(pathToWatch) {

			@Override
			public void onEvent(int event, String path) {

				Log.d(TAG, "File Changed --> Path = " + pathToWatch +"/"+ path);
				Log.d(TAG, "File Changed --> Event = " + event);
			}
		};
		observer.startWatching();
	}
}
저작자 표시
신고

+ Recent posts

티스토리 툴바