Android系統(tǒng)API提供了FileObserver抽象類(Linux的INotify機(jī)制)來監(jiān)聽系統(tǒng)/sdcard中的文件或文件夾,F(xiàn)ileObserver類能對sdcard中的文件及文件夾的打開、創(chuàng)建、移動和刪除操作進(jìn)行監(jiān)控。下面看看代碼實現(xiàn):
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了離石免費建站歡迎大家使用!
//設(shè)置所要監(jiān)控的文件或文件夾 mFileObserver = new SDCardFileObserver(Environment.getExternalStorageDirectory().getPath()); //開始監(jiān)聽 mFileObserver.startWatching(); static class SDCardFileObserver extends FileObserver { //mask:指定要監(jiān)聽的事件類型,默認(rèn)為FileObserver.ALL_EVENTS public SDCardFileObserver(String path, int mask) { super(path, mask); } public SDCardFileObserver(String path) { super(path); } @Override public void onEvent(int event, String path) { final int action = event & FileObserver.ALL_EVENTS; switch (action) { case FileObserver.ACCESS: System.out.println("event: 文件或目錄被訪問, path: " + path); break; case FileObserver.DELETE: System.out.println("event: 文件或目錄被刪除, path: " + path); break; case FileObserver.OPEN: System.out.println("event: 文件或目錄被打開, path: " + path); break; case FileObserver.MODIFY: System.out.println("event: 文件或目錄被修改, path: " + path); break; } } }