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

Schreibe einen Kommentar