更新了nexus 5到4.4.3。
Fileobserver不适用于任何目录。我试过了 1./data/data/com/whatsapp, 2.sdcard /电影也 3." /"。 在更新之前,它工作正常。
我在github上看到了RecursiveFileObserver,并将它与我的fileobserver一起使用。当两者一起使用时,我的FileObserver的onEvent被调用,这是非常奇怪的。一段时间后,ANR弹出。
那么,如何在android 4.4.3中使用fileobserver
这是我的代码
FileObserver observer = new FileObserver("/data/data/com.whatsapp/databases") {
public void onEvent(int event, String file) {
Log.i("ASH", "path VSLLED");
Log.i("ASH", "path AXCCESSED " + file);
}
};
observer.startWatching();
和RecursiveFileObserver的链接 https://github.com/bartoszprzybylski/owncloud-android/blob/master/src/com/owncloud/android/utils/RecursiveFileObserver.java
顺便说一句,FileObserver正在服务上运行
答案 0 :(得分:3)
我只能通过向清单添加uses-permission android.permission.WRITE_EXTERNAL_STORAGE来让FileObserver在KitKat上工作。我不知道为什么从4.4版本的Android版本开始需要此权限,并且可能仅在您要监视外部存储时才需要此权限。遗憾的是,我找不到有关此行为更改的任何文档或信息。
答案 1 :(得分:0)
参数指向Application内部存储。因此,使用context.getDir / getFilesDir给出位置。它可能有所帮助。