android - FileObserver 不工作 android 4.4.3

标签 android service fileobserver

将 nexus 5 更新为 4.4.3。

Fileobserver 不适用于任何目录。我试过 1./数据/数据/com/whatsapp, 2.sdcard/电影还有 3.“/”。 在更新之前它工作正常。

我在 github 上看到了 RecursiveFileObserver,并将它与我的文件观察器一起使用。当两者一起使用时,我的 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 运行在服务上

最佳答案

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

关于android - FileObserver 不工作 android 4.4.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184681/

相关文章:

java - 初始化 Android 传感器管理器时出错

c# - Web 引用服务错误

c# - 公开 .Net 服务

android - 文件观察器在待机期间处于服务状态

java - 从适配器内部调用 notifyDataSetChanged 失败

android - 通过 FCM 从 PushSharp 发送推送通知

java - 一个应用程序显示无法执行 dex : GC overhead limit exceeded GC overhead limit exceeded in eclipse

android - 无法解析 Manifest.permission.ACCESS_FINE_LOCATION

android - FileObserver 实例正在被垃圾收集

java - Java(Android)中的FileObserver多次触发