4

将关系 5 更新到 4.4.3。

Fileobserver 不适用于任何目录。我尝试了 1./data/data/com/whatsapp、2.sdcard/Movies 以及 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 正在服务上运行

4

2 回答 2

3

我只能通过将 uses-permission android.permission.WRITE_EXTERNAL_STORAGE 添加到清单中来让 FileObserver 在 KitKat 上工作。我不知道为什么从 4.4 版本的 Android 开始需要此权限,并且可能仅在您要监视外部存储时才需要。不幸的是,我找不到有关此行为更改的任何文档或信息。

于 2014-12-05T11:31:42.870 回答
0

FileObserver 的参数指向应用程序内部存储。因此,使用 context.getDir/getFilesDir 给出位置。它可能会有所帮助。

于 2014-08-21T09:35:00.447 回答