Ok, das ist ganz einfach: Ich habe eine FileObserver-Klasse, um einen Ordner mit Musik zu beobachten. Also habe ich onEvent und all diese Sachen implementiert, aber wenn ich eine Datei in diesen Ordner verschiebe oder einfüge, benutze einen Dateimanager, anstatt einen FileObserver.MOVED_TO oder einen FileObserver.CREATE zu bekommen, bekomme ich seltsame Ereignisse mit Zahlen wie 1073741656 sind nicht dokumentiert auf: Ссылка
Wie bekomme ich diese spezifischen Ereignisse wie Löschen, Verschieben, Erstellen und Einfügen?
[Bearbeiten] Hier ist der Code:
%Vor%Für alle anderen, die darauf stoßen, habe ich festgestellt, dass die MOVED_TO- und MOVED_FROM-Ereignisse höherwertige Bits im Event-Flag aktiviert haben. MOVED_FROM ist 0x40000040 und MOVED_TO ist 0x40000080. Die Problemumgehung besteht darin, einfach und ALL_EVENTS mit dem Ereigniscode die hohen Bits zu deaktivieren, d. H. "Event & amp; = FileObserver.ALL_EVENTS"
Update: Ich habe die inotify-Flags gefunden, die Sie von Ссылка , wäre es nett, wenn Google diese Bit-Flags dem FileObserver-Dokument hinzugefügt hätte.
Wenn jemand anderer von Google hierher kommt, beachten Sie dies die Dokumentation :
startWatching ()
Beginne, nach Ereignissen zu suchen. Die überwachte Datei oder das überwachte Verzeichnis müssen zu diesem Zeitpunkt vorhanden sein, andernfalls werden keine Ereignisse gemeldet (auch wenn es später erscheint) . Wenn die Überwachung bereits gestartet ist, Anruf hat keine Wirkung.
Tags und Links android