Wie implementiere ich einen FileObserver von einem Android Service?
Wie strukturieren Sie eine Android-app zu starten Service
zu verwenden FileObserver
so, dass, wenn die beobachteten Verzeichnis geändert wird (ie-user nimmt Bild) ein anderer code ausgeführt wird. Beim Debuggen, der onEvent-Methode wird nie ausgelöst.
Hier ist die onStart-event, an dem ich in meinem Dienst. Die Toast
feuert für "Mein Dienst Begann..."
public final String TAG = "DEBUG";
public static FileObserver observer;
@Override
public void onStart(Intent intent, int startid) {
Log.d(TAG, "onStart");
final String pathToWatch = android.os.Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera/";
Toast.makeText(this, "My Service Started and trying to watch " + pathToWatch, Toast.LENGTH_LONG).show();
observer = new FileObserver(pathToWatch) { //set up a file observer to watch this directory on sd card
@Override
public void onEvent(int event, String file) {
//if(event == FileObserver.CREATE && !file.equals(".probe")){ //check if its a "create" and not equal to .probe because thats created every time camera is launched
Log.d(TAG, "File created [" + pathToWatch + file + "]");
Toast.makeText(getBaseContext(), file + " was saved!", Toast.LENGTH_LONG);
//}
}
};
}
Aber nach dem Toast, dass, wenn ich ein Bild der onEvent nie ausgelöst. Diese ist bestimmt durch Debuggen. Es ist nie trifft, der Haltepunkt und der Toast wird nie ausgelöst.
Wenn das Verzeichnis angezeigt wird, das neue Bild wird dort gespeichert.
Wie bekommt man eine FileObserver
arbeiten in einem Service
?
InformationsquelleAutor der Frage shanabus | 2011-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte sehen diesem post. Ich denke, Sie sind fehlt den
observer.startWatching()
Anruf nach der Einstellung Ihres Beobachter.InformationsquelleAutor der Antwort Jack
Hinzufügen
.show()
nachtoast
d.h.InformationsquelleAutor der Antwort Sujith Manjavana
Eins noch FileObserver nicht beachtet sub-Verzeichnis. Wenn Sie möchten, zu beobachten, sub-Verzeichnisse zu Check out diese post.
Einer open-source - RecursiveFileObserver fungiert als erweiterte FileObserverdass rekursiv für alle Verzeichnisse unter dem Verzeichnis, das Sie wählten
Klicken Sie auf download-Datei
InformationsquelleAutor der Antwort Vivek Bansal