2013-08-16 91 views
0

我對MediaScanner有一個基本問題,請幫助我更好地理解此問題。是否可以使用MediaScanner遞歸掃描文件夾

文件夾的MediaScanner僅返回有關掃描的文件夾的信息,但不包含存在於其中的任何媒體文件的文件夾內容的信息。如果文件夾被掃描爲前。 /storage/extSdCard/DCIM/Camera其中有幾個.jpg文件,我得到有關該文件夾的掃描響應,而不是其中的about文件。日誌下面,

D/MediaScannerConnection(29105): Connected to MediaScanner 
D/MediaScannerConnection(29105): Scanning file 7klwibgf7fxlKdCbid7DCRV7Cbvfib 

D/MyLog(29105): onScanCompleted(path,uri), path: /storage/extSdCard/DCIM/Camera, Uri: content://media/external/file/4334 

我的問題, 是否有可能獲得事件回來時,曾經的媒體文件添加到我在這種情況下,利率的文件夾,/storage/extSdCard/DCIM/Camera

public void MyScanner(String filename){ 
     File fileCheck = new File(filename); 
     conn = new MediaScannerConnection(this,this); 
     conn.connect(); 
} 

@Override 
    public void onMediaScannerConnected() { 
     Log.d(TAG,"onMediaScannerConnected() to MediaScanner Service"); 
     conn.scanFile(filename, null); 
    } 

@Override 
    public void onScanCompleted(String path, Uri uri) { 
     if(path!=null && uri!=null) 
     Log.d(TAG,"onScanCompleted(), path: "+path+", Uri: "+uri.toString()); 
     Log.d(TAG,"Converting file uri to FilePath: "+getRealPathFromURI(uri)); 
     } 

回答

0
First One Code.... 

scanPhoto(imageFileName.toString()); 



public void scanPhoto(final String imageFileName) 
{ 
    msConn = new MediaScannerConnection(PreviewDemo1.this,new MediaScannerConnectionClient() 
    { 
       public void onMediaScannerConnected() 
       { 
        msConn.scanFile(imageFileName, null); 
        Log.i("msClient obj in Photo Utility","connection established"); 
       } 
       public void onScanCompleted(String path, Uri uri) 
       { 
        msConn.disconnect(); 
        Log.i("msClient obj in Photo Utility","scan completed"); 
       } 
    }); 
    msConn.connect(); 
} 

第二個代碼..

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 
+0

嗨阿米特,你的上面的代碼是否掃描文件夾中的圖像文件?我有一個要求,我需要掃描我的興趣遞歸地爲其中的圖像文件的「文件夾」。 – Manju

+0

沒有不遞歸的工作。請嘗試第二個我編輯 –