android - 在 Android 上监控文件访问

标签 android

我需要监控由我的 Android 设备上的特定程序访问(或尝试访问但失败)的文件。类似于 PC 上的 FileMon。

网上有反编译程序的建议,但我正在寻找更直接的方法。

谢谢。

最佳答案

您应该使用标准的 android.os.FileObserver,此监视器文件(使用 inotify)在设备上的任何进程(包括本进程)访问或更改文件后触发事件。 FileObserver 是一个抽象类;子类必须实现事件处理程序 onEvent(int, String)。引用这个链接http://developer.android.com/reference/android/os/FileObserver.html

这里是一个简单的例子:

import android.os.FileObserver;   
import android.util.Log;   


    /**  
     * SD Card file monitor  
     * 
     */  
public class SDCardListener extends FileObserver {   

       public SDCardListener(String path) { 
              super(path);   
       }   

       @Override  
       public void onEvent(int event, String path) {          
              switch(event) {   
                     case FileObserver.ALL_EVENTS:   
                            Log.d("all", "path:"+ path);   
                            break;   
                     case FileObserver.CREATE:   
                            Log.d("Create", "path:"+ path);   
                            break;   
              }   
      }   
}

SDCardListener listener = new SDCardListener("YOURDIRPATH");   

//Start monitoring   
listener.startWatching();

// You can try to access the directory here 

//Stop monitoring   
listener.stopWatching();  

你应该牢记的一件事是你应该保留对文件观察者对象的有效引用以防止它被 GC。

关于android - 在 Android 上监控文件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592014/

相关文章:

android - Android 没有 qsort_r(或者如何禁用强制 Thumb 在 Android ARM 代码中使用 CLZ)

android - 什么是gralloc_goldfish?

android - 我如何在 flutter 中单击交错 GridView 中的项目

java - 将 "2 backgrounds"设置为按钮

android - Android的图像处理库?

android - 你能以编程方式更改 android 键盘文本字体吗?

java - 更改 TextView 的文本会引发 NullPointer 异常

android - 尝试构建适用于Android的Ionic 4应用程序,但即使我已设置gradle,也未找到路径和变量

java - HttpURLConnection 即使在 setDoOutput(true)、setRequestMethod ("POST") setRequestProperty("Content

android - andEngine Android-Studio linker Error during Build