I found a great class to extend the abstract class File Observer ...
import android.os.FileObserver;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.util.Log;
public class FileSync extends FileObserver {
public String absolutePath;
public String uid;
public FileSync(String path, String uidd) {
super(path, FileObserver.ALL_EVENTS);
absolutePath = path;
uid = uidd;
}
@Override
public void onEvent(int event, String path) {
if (path == null) {
return;
}
if ((FileObserver.CREATE & event)!=0) {
doFileUpload(path, uid);
}
if ((FileObserver.OPEN & event)!=0) {
}
if ((FileObserver.ACCESS & event)!=0) {
}
if ((FileObserver.MODIFY & event)!=0) {
doFileUpload(path,uid);
}
if ((FileObserver.CLOSE_NOWRITE & event)!=0) {
}
if ((FileObserver.CLOSE_WRITE & event)!=0) {
doFileUpload(path,uid);
}
if ((FileObserver.DELETE & event)!=0) {
}
if ((FileObserver.DELETE_SELF & event)!=0) {
}
if ((FileObserver.MOVED_FROM & event)!=0) {
}
if ((FileObserver.MOVED_TO & event)!=0) {
doFileUpload(path,uid);
}
if ((FileObserver.MOVE_SELF & event)!=0) {
}
if ((FileObserver.ATTRIB & event)!=0) {
}
}
I create three of these observers in onCreate IntentService as follows:
new File("/sdcard/Docs/").mkdir();
FileSync files = new FileSync("/sdcard/Docs/",uid);
FileSync pictures = new FileSync(Environment.DIRECTORY_PICTURES,uid);
FileSync music = new FileSync(Environment.DIRECTORY_MUSIC,uid);
files.startWatching();
pictures.startWatching();
music.startWatching();
Not only observers do not work, but the mkdir function does not work.
Any ideas? Thank!
source
share